为什么字符串循环被忽略?

时间:2018-12-16 17:50:15

标签: c string loops split

我是编程领域的新手,我正在尝试通过使用一个循环来拆分字符串,该循环应该分别拆分所有字符,但是它被忽略了,并且基本上以显示用户输入而不是使用循环来结束分隔各个字母/字符。我是否错过了在循环中声明一些重要内容?

3 个答案:

答案 0 :(得分:2)

for (i = 0; str[i] != '\0'; i++); <-这里有一个分号,因此您的循环实际上不执行任何操作

还请注意,str[i] != '\0'是迭代字符串的非常危险的方式。如果您的字符串不包含零终端字符,则C会很乐意继续读取末尾的内存。

答案 1 :(得分:0)

您发布的内容很少有语法错误。

 /* This should be <stdio.h>
 ... 
 /* Don't need a. semi-colon here
 int main();
 ...
 /* Calling getchar() will cause you to lose the first character of the
    the input
 */ 
    getchar();
    ... 
 /* Don't need a semi-colon here */
    for (i = 0; str[i] != '\0'; i++
    ...
    system("pause");
 }

进行这些调整后,您应该会发现代码有效。

Write text:
Hello world
Input: Hello world

H
e
l
l
o

w
o
r
l
d


sh: pause: command not found

我不在Windows上,因此,如果进行调整后您端的代码似乎不起作用,则可能是Windows特定的。

答案 2 :(得分:0)

如果您使用的是Java,则可以使用空字符串进行拆分,然后遍历通过split方法创建的列表。