精华内容
下载资源
问答
  • C语言实现在不知道具体行数的情况下实现多行字符串输入
    千次阅读
    2019-08-29 09:48:48

    实现思路:通过比较输入的行和空字符串是否相等,如果相等则退出输入,实现代码如下:

    #include "stdio.h"
    #include "stdlib.h"
    #include "string.h"
    #define N 1000
    int main()
    {
    	char str[N][12];
        int i=0;
    	while(gets(str[i]))
    	{
    		if(strcmp(str[i],"")==0)     //判断如果这个输入的字符串为空则退出
    		{
    			break;
    		}
    		i++;
        }
       	puts(str[0]);
       	return 0;
    }

     

    更多相关内容
  • C语言多行字符串输入问题

    千次阅读 2022-04-10 16:52:41
    C语言多行字符串输入问题 不明确具体输入行数 对于没有确定的输入行数时,一般采用Ctrl+Z结束输入。 对于输入多个字符串,可以保存在二维数组中 1.~scanf方式 char str[100][100]; int i=0; while(~scanf("%s",str...

    C语言多行字符串输入问题

    不明确具体输入行数

    对于没有确定的输入行数时,一般采用Ctrl+Z结束输入。

    对于输入多个字符串,可以保存在二维数组中

    1.~scanf方式

    char str[100][100];
    int i=0;
    while(~scanf("%s",str[i]))
    {
    	i++;
    }
    

    scanf函数的返回值为正确输入值的个数,如果没有正确输入,scanf返回值为-1,然后取反,就为0,退出循环

    但是,这会产生一个问题,当输入空格也会结束输入使的行数增加

    下面进行改进

    while(gets(a[i]))
        {
            if(strcmp(a[i]," ")==0)
            {
    
                break;
            }
            i++;
        }
    

    **实现思路:**通过比较输入行和空字符串是否相等,如果相等则退出输入

    2.EOF

    EOF即:End of file,文件结束符

    char str[100][100];
    int i=0;
    while(scanf("%s",str[i])==1)
    {
    	i++;
    }
    

    这里的1代表的是输入的元素的个数,表示输入元素个数不为1则结束循环

    3.scanf

    char a[30];
    scanf("%[^\n]",a);
    

    scanf中的*[^\n]\表示遇到换行才结束输入*

    \

    展开全文
  • C语言读取多行字符串

    万次阅读 2019-03-25 03:28:22
    /*scanf()函数接受输入以后,回车被保存在输入流中了,在scanf()后面加一个 getchar()就好了。这样会吃掉多余的回车符,后面的gets()就可以接受输入了。*/ for (int i = 0; i ; i++) { fgets(lst[i], 500, stdin); ...

    例题:基因相关性

    描述

    为了获知基因序列在功能和结构上的相似性,经常需要将几条不同序列的DNA进行比对,以判断该比对的DNA是否具有相关性。

    现比对两条长度相同的DNA序列。首先定义两条DNA序列相同位置的碱基为一个碱基对,如果一个碱基对中的两个碱基相同的话,则称为相同碱基对。接着计算相同碱基对占总碱基对数量的比例,如果该比例大于等于给定阈值时则判定该两条DNA序列是相关的,否则不相关。

    输入

    有三行,第一行是用来判定出两条DNA序列是否相关的阈值,随后2行是两条DNA序列(长度不大于500)。

    输出

    若两条DNA序列相关,则输出“yes”,否则输出“no”。

    样例输入:

    0.85

    ATCGCCGTAAGTAACGGTTTTAAATAGGCC

    ATCGCCGGAAGTAACGGTCTTAAATAGGCC

    样例输出 

    yes

     错误代码:

    #include <stdio.h>
    #include <string.h>
    int main() {
        double x;
        char lst[2][500];
        scanf_s("%lf", &x);
        for (int i = 0; i < 2; i++) {
            fgets(lst[i], 500, stdin);
        }
        int same = 0, all = 0;
        while (lst[0][all] != NULL) {
            if (lst[0][all] == lst[1][all])
                same++;
            all++;
        }
        if (same*1.0 / all < x)
            printf("%s", "no");
        else
            printf("%s", "yes");
        return 0;
    }

     

    正确代码: 

    #include <stdio.h>
    #include <string.h>
    int main() {
    	double x;
    	char lst[2][500];
    	scanf_s("%lf", &x);
    	getchar();
    
    	/*scanf()函数接受输入以后,回车被保存在输入流中了,在scanf()后面加一个
              getchar()就好了。这样会吃掉多余的回车符,后面的gets()就可以接受输入了。*/
    
    	for (int i = 0; i < 2; i++) {
    		fgets(lst[i], 500, stdin);
    	}
    	int same = 0, all = 0;
    	while (lst[0][all] != NULL) {
    		if (lst[0][all] == lst[1][all])
    			same++;
    		all++;
    	}
    	if (same * 1.0 / all < x)
    		printf("%s", "no");
    	else
    		printf("%s", "yes");
    	return 0;
    }

     

     

    展开全文
  • C语言多行字符串eof问题如何解决?#includevoid main(){ printf("input a sentence \n");char a[80],*p;int i=0,lowercase=0,uppercase=0,space=0,tab=0,enter=0;printf("ps: input ctrl+z to end of the input and ...

    C语言多行字符串eof问题如何解决?

    #include

    void main()

    { printf("input a sentence \n");

    char a[80],*p;

    int i=0,lowercase=0,uppercase=0,space=0,tab=0,enter=0;

    printf("ps: input ctrl+z to end of the input and press enter to show the result\n");

    printf("=====================================\n");

    while(1)

    { if((a[i]=getchar())==EOF)

    break;

    i++;

    }

    p=&a[0];

    while(1)

    {if(*p==EOF)

    break;

    if((*p>='a')&&(*p<='z'))

    lowercase++;

    else if(*p==' ')

    space++;

    else if(*p==' ')

    tab++;

    else if(*p=='\n')

    enter++;

    else if((*p>='A')&&(*p<='Z'))

    uppercase++;

    p++;

    }

    printf("=====================================\n");

    printf("lowercase %d\n",lowercase);

    printf("uppercase %d\n",uppercase);

    printf("space %d\n",space);

    printf("tab %d\n",tab);

    printf("enter %d\n",enter);

    }

    程序已经算是成功了

    可是有很多让我不爽的地方

    首先是ctrl+z必须在行首输入

    然后就是当输入ctrl+z之后 还需要输入回车才会显示结果

    高手们能不能帮忙改改

    让一旦输入ctrl+z 就能使之输出结果

    而且因为输入ctrl+z结束时需要按回车 似乎enter的统计也有问题

    古冶

    发布

    2个回答

    67b0a70febe552c922c54bb8560d6ef6.png

    精华知识

    展开全文
  • C语言中的多行输入问题

    千次阅读 2021-11-15 17:28:13
    牛客网和LeetCode的竞赛题中经常会遇到多行输入,以前不熟悉这种写...如:输入多个字符串,保存在二维数组中,可以采用以下两种方式: 1、~scanf方式 char str[10][10];//定义二维数组,保存多个字符串 int i = 0; w
  • 使用字符串数组作为一个简单的文本编辑器的基础。 接受多行输入,直到接受一个空行,结束输入,将输入的所有行打印在屏幕上。实现的精彩瞬间: 1.宏定义将该字符的大小确定 2.字符串函数的使用gets_s(text[t],100...
  • 本题要求实现一个函数,统计给定字符串中英文字母、空格或回车、数字字符和其他字符的个数。 裁判测试样例: #include <stdio.h> #define MAXS 15 void StringCount( char s[] ); void ReadString( char s[]...
  • c语言输入字符串有空格怎么办

    千次阅读 2020-05-14 14:07:08
    printf("输入一段字符串:"); fgets(str,50,stdin); 采用fgets输入可以识别空格,如输入hello world,输出hello world 若采用scanf,空格就相当于一个结束符,识别不了 如输入hello world,只能输出hello 只不过用...
  • #include<stdio.h> #include<string.h> int main(){ void reverse(char arr[]); char cs[20];... while(scanf("%s",cs)!=EOF){ //输入多行字符串 reverse(cs);//调用倒序输出字符串的函数 pri...
  • 如果想直接看解决办法,直接点击目录中的结果处文章目录前言:问题:原因:尝试改进:新问题:原因:最后解决办法:思路:结果前言:我想大家在做一些PTA题的时候,有的时候需要输入多行字符,例如:ABC DWQ在这些...
  • 运行代码: 执行结果: 扩展资料 在C语言编程中,常常需要对字符串比较和排序,经常遇到对字符串整体的控等操作,strcmp 比较str1和str2的大小,而其它的c函数strlen(),字符串拷贝函数strcpy()/strncpy(),字符串...
  • c语言实现多行输入输出数据

    万次阅读 2020-09-07 10:10:56
    刷题中遇到的要求多行输入与输出
  • 拯救小a c语言 字符串多行输入 链接:https://ac.nowcoder.com/acm/contest/9692/B 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 小a...
  • C++如何输入多行字符串(含空格)

    万次阅读 多人点赞 2014-07-10 18:58:52
    输入一个整数n,表示接下来要输入n行字符串,每一行字符串带有空格,按回车表示结束该行的输入 程序1: #include #include using namespace std; int main() { string s; int n; cin>>n; for(int i=...
  • C语言如何输入带空格的字符串

    千次阅读 多人点赞 2021-08-02 15:58:33
    可以看到,gets()用于从标准输入流读入一个整行(以’\n’或EOF)结束,写入ptr指向的字符数组,并返回这个指针;出错或遇到文件结束时则返回NULL。行末的’\n’从流中取出,但不写入数组。gets()不检查被写入的数组...
  • 满意答案blue797992013.11.04采纳率:44%等级:6已帮助:657人【首先】是多行字符串输入和保存。可以:开设一个字符串数组如下,其中N定义最多可记录多少行,M定义每行可保存多少个字符,改变#define定义可以调整...
  • 语言技巧——scanf读入多行字符串

    千次阅读 2020-03-24 08:45:05
    #include <bits/stdc++.h> using namespace std; int main(){ char s[100004]; scanf("%[^EOF]",&s); cout<<s; } 注意这里&s和s都可
  • #includeint main(){char ...可是在运行的时候却出现了问题:①输入a后按下回车②用空格隔开之后再按下回车相信和我一样的大部分初学者,看着自己天衣无缝的代码,百思不得其解。让我们先来看看,在百度百科中,对于...
  • C/C++读入多行字符串string

    万次阅读 多人点赞 2016-09-30 14:11:00
    这样当我们输入一行带空格的字符串,就要考虑getline函数,从流中读入一行字符串。1. 读入不含空格字符串 首先我要介绍一下标准C++字符串类string,它包含在”string”头文件中,记住不是string.h或者cstring头文件...
  • 解决未知行数的多行字符串输入问题 类似问题描述 解决方案: 第一种 第二种: 对应的 #include <stdio.h> int main() { //To read numbers int n; while(~(scanf("%d",&n)!=EOF)) { printf("%d",n)...
  • 定义一个指针数组,用各字符串对它进行初始化,然后用选择法排序,但不是移动字符串,而是改变指针数组的各元素的指向
  • C语言输入带空格的字符串

    万次阅读 多人点赞 2017-12-08 12:52:43
    1.用 gets() ,它可以接收带空格的字符串, 直到回车才结束输入 char buf[80]={0};  gets(buf); //可以读取空格, 回车结束输入 2.使用"%[^\n]" 也是可以接收输入一个带空格的字符串,直到回车结束接收 ...
  • 这是非常典型的问题,传统的多行字符串声明有没有方法很好的解决? 2.常见多行声明方式 利用@""包裹起来,换行 NSString *a = @"[AppHost] " @"It is called \"jsbridge\"." @"like window.ah('ready') = function...
  • 输入三个字符串,按由小到大的顺序输出 输入 3行字符串 输出 按照从小到大输出成3行 样例输入 cde afg abc 样例输出 abc afg cde # include<stdio.h> # include<string.h> int main() { char ch1[1000]...
  • 关于c语言的scanf()和gets()输入字符串

    千次阅读 2019-04-11 13:06:10
    gets() 认为空格也是字符串的一部分,只有遇到回车键时才认为字符串输入结束,所以,不管输入了多少个空格,只要不按下回车键,对 gets() 来说就是一个完整的字符串。换句话说,gets() 用来读取一整行字符串。 ...
  • * * 作 者: 曾舜尧 * * 完成日期:2013 年 05 月 11 日 * * 工 具:VC6.0 * * * * 输入描述: * * 问题描述: 输入三个字符串,按由小到大的顺序输出(指针) * * 程序输出: * * 问题分析:略 * * 算法设计:略 *...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 19,307
精华内容 7,722
关键字:

c语言输入多行字符串