【问题标题】:String having the value of Null值为 Null 的字符串
【发布时间】:2020-05-02 09:29:53
【问题描述】:

首先我将展示一个例子:

void main(void){
char word[12];
char input[12];
int i;
printf("Input some word: ");
scanf("%s",input);

for(i=0;i<strlen(input);i++)
    word[i]=NULL;

if(word[i]==NULL){
        printf(" %c ",word[i]);
    }

}

正如你所看到的,我给 word[i] 一个 NULL 值,它会发出警告“警告赋值从没有强制转换的指针中生成整数”,然后下一个警告是 if“指针和整数之间的警告比较”。 那么我该如何解决这个警告,存在其他选项而不是给出 NULL 值?

【问题讨论】:

  • word[i](对于每个有效的i)是charNULL 不是 char 并且(在您的实现中)不兼容,因此您会收到警告。使用'\0' 而不是NULL
  • 好的,非常感谢。顺便说一句,我是新来的,问题解决后我需要对帖子做些什么吗?
  • 如果您喜欢以下答案之一,请将其标记为已接受。您还可以将多个标记为有帮助。

标签: c error-handling


【解决方案1】:

字符串空终止符是'\0'NULL通常用于指针。

【讨论】:

    【解决方案2】:

    '\0' 和 NULL 的值都为 0。 区别在于意图和更易读的代码。

    要了解更多,请参考:What is the difference between NULL, '\0' and 0

    它有很好的例子解释。

    【讨论】:

      猜你喜欢
      • 2021-04-04
      • 1970-01-01
      • 2017-02-17
      • 2022-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-01
      相关资源
      最近更新 更多