📜  在C中使用空格输入字符串(3种不同方法)

📅  最后修改于: 2021-05-25 20:38:55             🧑  作者: Mango

我们可以使用的scanf(“%s”时,STR)取字符串输入的温度。但是,它仅在找到第一个空格之前才接受字符串。

C程序通过3种方法以用户输入的形式接受带空格的字符串。

让我们有一个名为str []的字符数组(字符串)。因此,我们已将变量声明为char str [20]。

方法1:使用获取

语法: char * gets(char * str)

#include 
int main()
{
   char str[20];
   gets(str);
   printf("%s", str);
   return 0;
}

注意:gets()已从c11中删除。因此,在实施时可能会向您发出警告。
我们在这里看到它并不在乎数组的大小。因此,缓冲区溢出是有可能的。

方法2:为了克服上述限制,我们可以将fgets用作:

语法: char * fgets(char * str,int size,FILE * stream)

示例: fgets(str,20,stdin);如此处所示,根据声明,20为MAX_LIMIT。

#include 
#define MAX_LIMIT 20
int main()
{
   char str[MAX_LIMIT];
   fgets(str, MAX_LIMIT, stdin);
   printf("%s", str);
  
   return 0;
}

方法3:在scanf中使用%[^ \ n]%* c

示例: scanf(“%[^ \ n]%* c”,str);

#include 
int main()
{
   char str[20];
   scanf("%[^\n]%*c", str);
   printf("%s", str);
  
   return 0;
}

说明: []是scanset字符。 ^ \ n告知输入,直到没有遇到换行符为止。然后,此%* C,它读取字符和这里使用*指出这个字符被丢弃。

想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。