C-用空指针和空字符串检查



我是C和编程的新手。我试图制作一个大写程序,但我应该进行Null指针检查和空字符串检查。我怎么能继续?我只想理解这一点。

#include <stdio.h>    
#include <stdlib.h>
int *toUpper(char *str)
{
    int i;
    for (i = 0; i < strlen(str); i++) {
        if (str[i] >= 'a' && str[i] <= 'z') {
            str[i] = str[i] - 'a' + 'A';
        }
    }
    return str;
}
int main(int argc, char **argv)
{
     for (int i = 1; i < argc; ++i)
     {
         printf(toUpper(argv[i]));
     }
}

首先,让我告诉您,如果您不需要格式转换(使用转换说明器),请使用puts(),而不是printf()

也就是说,您需要检查toUpper()功能的两件事:

  1. 您需要在访问之前检查传入的参数是否为空指针。您可以检查针对NULL的传入指针,例如

    int *toUpper(char *str){
        if (str) {             //makes sure `str` is not a NULL pointer
          // do operation
         }
          // else 
         return NULL;      //indicate error condition
     }
    
  2. 您需要检查提供的字符串是否没有空。为此,您可以检查第一个元素是否为 NUL,使用:

    int *toUpper(char *str){
        if (str) {
           if (str[0] != '')     // check the first element
          // do operation
         }
          // else 
         return NULL;      //indicate error condition
     }
    

相关内容

  • 没有找到相关文章

最新更新