我是 C 的新手。
#include <string.h>
#include <stdio.h>
int main(int argc, char *argv[])
{
char* c=argv[1];
for (int i=0;i<sizeof(c);i++)
{
printf("%c\n",c[i]);
}
return 0;
}
我正在尝试编写一个程序来打印单词的每个字符。
当我尝试测试时:它显示 吨 电子 秒 吨 当我尝试使用 testtesttest: 时,它显示: 吨 电子 秒
我不明白为什么,你能告诉我为什么吗?
最佳答案
两个问题:在指针上使用 sizeof
运算符返回指针的大小而不是它指向的内容。如果你想要一个字符串的长度,你应该使用 strlen
.
第二个问题是如果你的程序没有参数会发生什么。然后 argv[1]
将为 NULL
。
关于c - 在c中读取一个char数组的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24713956/