我很难编写理解说明符和字符串函数的格式。
我的目标是使用%[]
来读取所有字符和空格,然后使用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);
}
答案 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个字符的用户。