繁体   English   中英

我怎样才能在c中输入多个字符串?

[英]How can i take multiple string input in c?

我正在尝试学习c语言中的字符串。 我已经写了这个程序。 我希望该程序针对特定单词终止(键入单词后按ENTER)。 它的编译很好,但是当我按Enter给出输入后,它向我显示此消息: test.exe已停止工作。 这里的“测试”是我程序的名称。 请帮助我理解这一点。

#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;
}

要比较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
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM