use*_*392 3 c string initialization
有没有办法知道C中字符串中的元素是否有值?我尝试过使用NULL,''和'',但它们似乎没有用.我需要将字符向下移动到索引0而不使用stdlib函数.
#include <stdio.h>
int main()
{
char literal[100];
//literal[99] = '\0'
literal[98] = 'O';
literal[97] = 'L';
literal[96] = 'L';
literal[95] = 'E';
literal[94] = 'H';
int index = 0;
while(literal[index] != '\0')
{
if(literal[index] == NULL) // does not work
printf("Empty");
else
printf("%c", literal[index]);
++index;
}
getchar();
return 0;
Run Code Online (Sandbox Code Playgroud)
}
literal不可以.由于具有自动存储功能,其元素不会被初始化,数组中的值未定义.
您可以将每个元素初始化为特殊元素并检查该值.你可以改变
char literal[100];
char literal[100] = {0};
Run Code Online (Sandbox Code Playgroud)
将每个元素初始化为0.您必须将while循环终止检查更改为
while(index < 100) {
if(literal[index] == 0)
printf("Empty");
...
}
}
Run Code Online (Sandbox Code Playgroud)
如果你需要在数组上执行更多的字符串操作,那可能不是最佳的,因为0现在表示空元素,也是'字符串结尾'.