当我输入我想要找到的字符位置时,此代码停止工作,此外,我需要使用str作为指针和malloc来重新制作它
int main(void)
{
char str[10];
int pos;
puts("Type a text");
gets(str);
puts("Type a position");
scanf("%d", pos);
pos = pos - 1;
printf("%s", str[pos]);
system("pause");
return 0;
}
答案 0 :(得分:1)
str[pos]
是单个字符,而不是字符串,因此您可以使用%c
进行打印,但不能使用%s
进行打印
你想:
printf("%c", str[pos]);
system("pause");
答案 1 :(得分:1)
也许你想这样做:
scanf("%d", &pos);
答案 2 :(得分:0)
以下行错误:
printf("%s", str[pos]);
您正在使用格式说明符"%s"
(用于打印字符串)来处理str[pos]
,即char
。
由于"%s"
期望一个指针地址,如果你不小心使用,很可能你的程序将被破坏。