读书人

怎么判断是否到了字符串的结尾

发布时间: 2012-02-13 17:20:26 作者: rapoo

如何判断是否到了字符串的结尾
#include <stdio.h>

int main(int argc, char *argv[])
{
char *str= "abcdef ";
while(str != NULL)
{
printf( "a\n ");
str++;
}

return 0;
}

结果是无限循环啊。具体怎么判断呢?程序在unix下编译的。

[解决办法]
while(str != NULL)
==>
while (*str != '\0 ')

字符串结尾都有一个‘\0’字符,所以判断当前字符是否为 '\0 ' 来判断字符串结束,当前字符
用 *str 取得
[解决办法]
字符串都是以结尾 '\0 '
楼上正解
[解决办法]
恩,应该while(*str != '\0 '),字符串都是以 '\0 '结束的,但调用strlen()时, '\0 '是不计算的!
[解决办法]
str是字符指针,str肯定不为0啦,要判断str是不是指向字符串结束符,要递引用*str
[解决办法]
#include <stdio.h>

int main(int argc, char *argv[])
{
char *str= "abcdef ";
while(*str != NULL)
{
printf( "%c\n ",*str);
str++;
}

return 0;
}

[解决办法]
都被人说光了,我没事干了,顶一顶好了
[解决办法]
str是指针,它的值是地址,char * str = "asdfsdafsd ";
但是str != 'a ', 而是0x1010010(举例)
[解决办法]
NULL 和 '\0' 是完全不同的2种定义
[解决办法]
NULL 的定义 (void*)0;
实际上在很多系统内是0,可以当成0来用,

str!=NULL只是判断指针是不是空,字符串结束的标志是最后一个字符为 '\0 ',如过指针只向这个字符,只是
这个指针指向的值为0,但指针不为0

可以这样判断.
*str!=NULL
不过最好
*str!= '\0 '

读书人网 >C语言

热点推荐