c - C语言中的字符串输入

标签 c string c-strings

同时,每当我使用内置函数 getsscanf 函数依次获取输入字符串和字符时,我都会遇到问题。

首先,每当我使用 gets 获取输入字符串,然后借助 scanf 函数获取输入字符时,编译器不会响应获取字符尽管它从 gets 函数获取输入并直接跳过 scanf 函数从用户处获取字符。

请参阅下面的代码并将其运行到您的编译器以了解问题

   #include <stdio.h>
   #include <string.h>
   int main()
   {

  int i,l,T,exit;

  char str[1000];
  char ch;

  scanf("%d",&T);

  while( (T-- ) ){


       gets(str);

       scanf("%c",&ch);

       l = strlen(str);

       exit = 0;

       for( i = 0; i < l; i++ ){

            if( str[i] == ch )
                      exit++;
        }

       if(!(exit))
          printf("'\%c\' is not present\n",ch);

     else
         printf("Occurrence of '\%c\' in '\%s\' = %d\n",ch,exit);

    }

    return 0;

     }

最佳答案

不要混合使用输入法。阅读此讨论以了解详细信息。

http://c-faq.com/stdio/gets_flush2.html

我建议用 scanf 替换 gets。

关于c - C语言中的字符串输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35883551/

相关文章:

c++ - 交换两个字符串时访问正确的内存时遇到段错误

C字符串递归函数从中间找出相等性

c++ - 此断点当前不会被命中 : Dll debugging

java - 不能从另一个中减去一个 double 吗?

python - 分割字符串并保留分隔符,且分隔符连续出现

javascript - 使用 JavaScript 拆分字符串但忽略其中的 HTML 字符

c++ - 以不同的字节顺序写入/读取二进制文件

c++ - 如何提高套接字上的安全连接

c - Eclipse + CDT : Possible to bind key with GDB user-defined command?

c - 这些错误在 C 中意味着什么?