代码不读取字符串的最后一个字符(C语言)

标签 c

#include "stdio.h"
int main() {
  char input[10];
  char standart;
  int i;
  int b = 0;

  scanf("%c", &standart);

  for(i = 0; i < 10; i++){
    scanf("%c ", &input[i]);
    if(input[i] == standart){
      b++;
    }
  }

  printf("%d", b);
  return 0;
}

// ( 2 % a b ( r ) ? ( (

代码支持读取列表中的第一个字符,然后查看有多少个所述字符(不包括其本身)。但代码不会读取最后一个字符,简而言之,当我输入示例输入时,代码只看到 2 个“(”,而它应该看到 3 个。

最佳答案

你必须像这样scanf("%c",&c);
因为它从之前的输入中读取'\n',所以空格会跳过'\n'

关于代码不读取字符串的最后一个字符(C语言),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46978627/

相关文章:

python - C代码转换为python

c - pthread_exit 中参数的目的是什么?

c - strcat 上的段错误

c - 为什么puts()最后会打印一个额外的字符?

c - 为什么我的程序在写入文件时崩溃?

c - VIM:某些 .c 文件打开时没有语法高亮显示

c - 除了将 C 弦标记为宽弦之外,L 对 C 弦还有哪些特殊作用?

c - 错误输出(指针)

c - 为什么我看不到使用 Arduino 串行监视器通过 XBees 发送的数据?

c - pthread_cond_broadcast 被 dlsym 破坏了吗?