我正在尝试学习c中的字符串。我写过这个程序。我希望这个程序将终止一个特定的单词(输入单词后按ENTER键)。它编译得很好,但是当我按下输入后给出输入它会显示以下消息: test.exe已停止工作。 此处“test”是我的程序的名称。 请帮我理解这一点。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
int i, j;
char *str[10];
for(i=0; i<10; i++)
{
//gets(str[i]);
scanf("%s",str[i]);
if(str[i]=="man") break;
}
for(j=0; j<10; j++)
{
printf("%s\n",str[j]);
}
return 0;
}
答案 0 :(得分:1)
为了比较C中的字符串,您可以使用strcmp
函数。例如:
if(strcmp(str[i],"man") == 0){
# write your code here
}
对于初始化,请执行以下操作。
char *str[10];
for(i=0; i<10; i++){
str[i] = malloc(sizeof(char) * 1024);
}
您还可以执行以下操作。
char str[10][1024];
for(i=0; i<10; i++){
scanf("%s", str[i]);
}
备用:如果您要将str
声明为char **str
,可以按照以下方法进行操作。
char **str = malloc(10*sizeof(char*));
for(int i=0; i<10; i++){
str[i] = malloc(sizeof(char) * 1024); // buffer for 1024 chars
}