带有C字符串的Malloc

时间:2014-08-25 22:46:40

标签: c string malloc

当我输入我想要找到的字符位置时,此代码停止工作,此外,我需要使用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;
}

3 个答案:

答案 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"期望一个指针地址,如果你不小心使用,很可能你的程序将被破坏。