【发布时间】:2022-01-13 16:56:50
【问题描述】:
这是代码,我需要帮助才能找到字母的位置。strcmp 不起作用,我现在不知道哪里有问题要解决。
#include <string.h>
int main(void)
{
char s[30]="fiordi";
char *c;
int cp,i,place;
printf("Enter char: ");
scanf("%s",&c);
for(i=0; i<6; i++){
cp=strcmp(s[i],c);
if( cp == 0 ){
place=i;
}
}
printf("the place is :%d",place);
}
【问题讨论】:
-
我给你写了这个例子是因为你的一段代码有不止一个问题:你将“c”的地址传递给 scanf(),它是一个未初始化的指针 (char * c),而且,总是在 scanf 中,您使用“%s”格式,该格式至少会写入您传递给它的地址 2 个字符:您输入的字符和一个 '\0' 字符(使用“%s”的字符串结尾)。你的运气是一个指针比 2 个字符宽。如果您在输入过程中写了“hello world”而不是输入一个字符,那么您的程序不仅会由于“if”而出现故障,而且会真正崩溃。
标签: arrays string if-statement char strcmp