C%[]转换说明符和字符串函数

时间:2008-10-20 13:40:07

标签: c

我很难编写理解说明符和字符串函数的格式。

我的目标是使用%[]来读取所有字符和空格,然后使用strcpy函数,然后使用strcat函数。

到目前为止,我已设法输入单个字符并打印出来,不包括空格。

这是迄今为止的代码;

int main(int argc, char** argv)  {
    char words[30];
    int loops;
    printf("How many letters would you like to enter? - ");
    scanf("%d",&loops);
    for(int i=0;i<loops;i++){
      printf("Provide some text as input:");
      scanf("%s", &words[i]);
    }
    printf("%d", strlen(words));

    printf("%s",&words);
    return (EXIT_SUCCESS);
}

3 个答案:

答案 0 :(得分:5)

我假设您要从标准输入到ENTER键读取最大长度为29个字符的字符串。

为此,您可以使用以下代码:

char phrase[30];
printf("Enter a phrase: ");
scanf("%29[^\n]", phrase);
printf("You just entered: '%s'\n", phrase);

%29[^\n]表示从开头到ENTER键最多可读取29个字符(保存一个用于零终止符)。这包括用户可以输入的任何空格字符。

答案 1 :(得分:0)

words [i]是字符串单词中的单个字符,您试图在其中存储字符串'。 要阅读单个字符,请使用%c。

答案 2 :(得分:0)

如果你想获得一个你会使用的角色:

scanf("%c", &words[i]);

完成后还需要终止字符串:

words[loops]='\0';

当你打印最后一个字符串时,你需要传递指针(而不是地址到指针):

printf("%s",words);

您的代码还需要处理取消或想要输入超过29个字符的用户。