我是C新手,但我有Java和Android方面的经验。 我的for循环中有问题。它永远不会结束,只是继续下去。
char entered_string[50];
char *p_string = NULL;
gets( entered_string );
for( p_string = entered_string; p_string != '\0'; p_string++ ){
//....
}
我知道获取是不安全的,不推荐和弃用,但根据我的规格,我必须使用它。我想通过使用指针遍历每个元素。
答案 0 :(得分:10)
您的测试应为*p_string != '\0';
p_string
是一个指针,你的循环正在检查指针是否为!= '\0'
。如果值为!= '\0'
,您会感兴趣,并且要从指针中获取值,您必须使用*
取消引用它。
答案 1 :(得分:2)
char str[] = "54321";
char *p;
p = str;
for (p; *p != '\0';++p)
{
printf("%s \n",p);
}
输出:
54321个
4321
321个
21个
1
答案 2 :(得分:1)
条件应为*p_string != '\0'
- 您需要取消引用指针。