English 中文(简体)
C %[] 转换说明符和字符串函数
原标题:
  • 时间:2008-10-20 13:40:06
  •  标签:

我在编码上遇到了困难,不理解格式说明符和字符串函数。

我的目标是使用% []来读取所有字符和空格,然后使用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);
}
问题回答

我假设你想从标准输入中读取一个最大长度为29个字符的字符串,一直读到按下回车键。

要做到这一点,您可以使用以下代码:

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

The %29[^ ] says to read at most 29 characters (saving one for the zero terminator) from the beginning up to the ENTER key. This includes any space characters that may be entered by the user.

words[i] is a single character in the string words and you are trying to store a string s in it.
To read a single character use %c.

如果你想获得一个角色,你可以使用:

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

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

words[loops]=  ;

当您打印最终字符串时,您需要传递指针(而不是指向指针的地址):

printf("%s",words);

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





相关问题
热门标签