如何从字符串中打印空格?

时间:2017-04-13 23:09:41

标签: c string

     #include <stdio.h>

    int main(){
           char phrase [100]={0};
           printf("Write a sentence: \n");
           scanf ("%s", phrase);
           printf("%s\n", phrase);
      }

该程序的目的是打印用户的句子。问题是''​​字符有问题,我不知道如何解决它。

在执行期间,由于某种原因,句子仅打印到第一个空白区域。但为什么呢?

1 个答案:

答案 0 :(得分:0)

正如评论中所指出的,%s中的scanf转换说明符无法读取带有空格的字符串;它使用空格作为分隔符。您可以使用fgets

#include <stdio.h>
#include <string.h>

int main() {
  char aLine[100];
  fgets(aLine, 100, stdin);
  aLine[strlen(aLine)-1] = '\0'; // trimming the last \n
  printf("%s\n", aLine);
  return 0;
}