c - 如何输入整个句子并打印到某个字符?

标签 c

如何输入一个句子并打印到某个字符?

#include <stdio.h>
int main(){
    int T;//testcase
    char str[1001];
    int i;

    scanf("%d",&T);
    getchar();
    for(int t=1; t<=T; t++){
        for(i=0; i!='\n';i++){
            scanf("%c",str[i]);
            getchar();
        }

        for(i=0; i!='\n'; i++){
            if(str[i]=='f' || str[i]=='F'){
                break;
            }else{
            printf("%c",str[i]);
        }
        }
    }
    return 0;
}

输入是字母数字句子。 如果没有“f”或“F”,则输出将是句子。 输出将是直到“f”或“F”的句子。

示例:

input: Hello world
output: Hello world

input: Chocolate Truffle
output: Chocolate Tru

最佳答案

你可能想要这样的东西:

#include <stdio.h>

int main() {
  int nbOfTests;               // use a self explaining name rather than "T"
  char str[1001];

  scanf("%d", &nbOfTests);
  getchar();   // absorb \n

  for (int t = 1; t <= nbOfTests; t++) {
    for (i = 0; ; i++) {
      str[i] = getchar();     // no scanf needed, just use `getchar`directly
      if (str[i] == '\n')
        break;                // Enter = > end the loop
    }

    for (int i = 0; ; i++) {  // declare i here
      if (str[i] == 'f' || str[i] == 'F' || str[i] == '\n')
        break;                // f F or Enter => end the loop
      else
        printf("%c", str[i]);
    }

    printf("\n");             // makes it more readable for the user
  }

  return 0;
}

免责声明:这段代码仍然很差,但接近原始代码,例如使用 fgets 读取一行文本会更好、更简单。

关于c - 如何输入整个句子并打印到某个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57166448/

相关文章:

c - 在哪里放置强大数字的声明?

c - 处理嵌入式代码中的浮点异常的最佳方法是什么?

c++ - 编译器 : (gcc 4. 8.1) 和 gcc( 4.3.2) 的不同结果

c++ - 处理浮点异常

c - 在输入文件中使用数组,For和If结构

c++ - 如何在具有大端架构的机器上测试您的代码?

c - 绕 Y 轴旋转 gluLookAt

c - 使用 chdir() 从终端更改目录

c - C 标准中不包含 strdup 的理由是什么?

c - scanf ("%[^\n]s")对于普通变量可以正常工作,但对于 C 中的结构变量不起作用