我一直试图找到一种很好的方法来找到部分填充的char数组的结尾。我一直在尝试的是如果array [x]!= null,但这似乎并没有起作用。
答案 0 :(得分:0)
您可以使用strlen
来实现此目标。
#include <stdio.h>
#include <string.h> // strlen
int main (int argc, char** argv) {
char str_array[32];
strcpy (str_array, "I am short");
printf ("string length: %d\n", strlen(str_array));
printf ("last index: %d\n", str_array[strlen(str_array)]);
return 0;
}
这应该返回
string length: 10
last index: 0
请注意strlen ()
返回存储在数组中的字符串的长度,该数组也是NULL('\ 0')终止符的索引。
答案 1 :(得分:0)
如果您的char数组以null结尾,则检查第一个null应该有效。如果不是,那你就做错了。 在实践中,需要有一个char来确定char数组的结束,否则无法分辨它的结束,除非你考虑数组本身的长度。
答案 2 :(得分:0)
#include <stdio.h>
int main (int argc, char **argv)
{
int i ;
char array[64] ;
for (i = 0; i < 64; ++i)
array[i] = 'a' ;
array[5] = '\0' ;
for (i = 0; i < 64; ++i)
{
if (array[i+1] == '\0')
break ;
}
printf ("the filled string ends after %d characters.\n", i-1) ;
return 0 ;
}
答案 3 :(得分:0)
以下方式怎么样?
int i=0
char array[30];
fillArray(&array); //some function that writes characters to this array
for(i=0;i<30;i++) {
if(array[i] == '\0') {
printf("Char array is a string\n");
break;
}
}