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