精华内容
下载资源
问答
  • C/C++中输入多组数据的方法
    千次阅读
    2021-06-05 11:24:06

    搜索热词

    如果在刚开始学习算法,做算法题的时候,题上经常会要求输入多组数据,对于刚开始学习的小白来说,可能不知道怎么算输入多组数据,也不知道该怎么处理,刚好想起来,就把方法记录一下

    怎么算输入多组数据?

    一般题中要求输入多组数据的意思就是读取数量不定的输入数据(不能确定输入数据的数量),在这种情况下,需要不断读取数据直至没有新的输入为止。

    方法一:

    #include

    int main()

    {

    int a;

    while(scanf("%d",&a)!=EOF)

    {

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

    }

    return 0;

    }

    上面是使用C语言的的方法,把输入语句作为while循环的判断条件,当输入数据不是文件结束符(EOF)的时候,就可以实现连续输入

    方法二:

    #include

    using namespace std;

    int main()

    {

    for(int i;cin>>i;)

    {

    cout << i << endl;

    }

    return 0;

    }

    方法二是用C++for循环实现,将输入语句作为for循环的condition部分,而expression部分省略不写,因为条件部分能改变i的值,所以这个循环无需表达式部分,其中,条件部分不断检查输入流的内容,只要读取完所有的输入或者遇到一个输入错误就终止循环

    方法三:

    #include

    using namespace std;

    int main()

    {

    int a;

    while(cin>>a)

    {

    cout << a << endl;

    }

    return 0;

    }

    方法三和方法二类似,使用istream对象作为循环的判断条件,检测流的状态。如果流是有效的,即流未遇到错误,那么检测成功。当遇到文件结束符(EOF)或者遇到一个无效输入时istream对象的状态就会变为无效。处于无效状态的istream对象会使条件变假。

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

    总结

    以上是编程之家为你收集整理的C/C++中输入多组数据的方法全部内容,希望文章能够帮你解决C/C++中输入多组数据的方法所遇到的程序开发问题。

    如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

    本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

    更多相关内容
  • 各种清空缓存区方法都做的不好,这里给出一种能够获得多组字符串的方式。

    多次输入字符串:

    #include<iostream>
    
    using namespace std;
    
    int main()
    {
    	char Aword[10][10];
        int i = 0;
        cout << "Enter a word: ";
        cin >> Aword[0];
        cin.get();
        while (++i)
        {
            cout << "Enter a word: ";
            int j = 0;
            cin.get(Aword[i][j]);
            for (; Aword[i][j] != '\n'; j++)
                cin.get(Aword[i][j + 1]);
            if (j == 0) break;
            Aword[i][j] = '\0';
        }
        for (int k = 0; k < i; k++)
        {
            cout << Aword[k] << endl;
        }
    	system("pause");
    	return 0;
    }
    

    在这里插入图片描述
    第四次输入用回车停止。

    展开全文
  • 题目输入一个字符串,输出该字符串中字符的所有组合。例如abc,它的组合有a、b、c、ab、ac、bc、abc。第一种思路使用递归求解,可以考虑长度为n的字符串中m个字符的组合,设为C(n, m),原问题的解即为C(n, 1)、C(n, ...

    题目

    输入一个字符串,输出该字符串中字符的所有组合。例如abc,它的组合有a、b、c、ab、ac、bc、abc。

    第一种思路

    使用递归求解,可以考虑长度为n的字符串中m个字符的组合,设为C(n, m),原问题的解即为C(n, 1)、C(n, 2)……C(n, n)的总和。

    对于求C(n, m),从第一个字符开始。每个字符都有两种情况,要么被选中,要么不被选中。如果被选中,递归求解C(n-1,m-1); 如果未被选中,递归求解C(n-1,m)。不管哪种方式,n的值都会减少。

    递归的终止条件是n=0或者m=0。

    代码

    def combination(strs, index, number, result):

    if number == -1:

    # print(result) # 输出的是字符列表

    print(''.join(result)) # 输出的是字符串

    return

    if index == len(strs):

    return

    # 放入当前字符,然后在后面的字符串中选择number-1个字符

    result.append(strs[index])

    combination(strs, index+1, number-1, result)

    # 不放当前字符,然后在后面的字符串中选择number个字符

    result.pop()

    combination(strs, index+1, number, result)

    def combine(strs):

    if strs is None:

    return

    result = []

    # 因为组合可以是1个字符的组合、2个字符的组合……一直到n个字符的组合,所以这里需要一个for循环

    for i in range(len(strs)):

    combination(strs, 0, i, result)

    if __name__ == '__main__':

    combine(list('abc')) # 即combine(['a','b','c'])

    输出结果为:

    a

    b

    c

    ab

    ac

    bc

    abc

    第二种思路

    由于遵循统计学的原理,故每次输出的个数为 2^n-1个,n为输入的字符串长度。所以就可以利用二进制表示的方式来求解,即给所有输出方式进行编号,那么从1到 2^n-1 中每个数的二进制表示中,1的位置即为要输出的字符串中的位置。

    例如,对于 “abc” 来说:

    0 0 1 --> a

    0 1 0 --> b

    0 1 1 --> ab(第1和第2位的数,下同)

    1 0 0 --> c

    1 0 1 --> ac

    1 1 0 --> bc

    1 1 1 --> abc

    代码

    def combination(strs):

    length = len(strs)

    for i in range(1, 1 << length): # 1 << length,即为总组合数-1

    for j in range(0, length):

    if (i & (1 << j)): # 满足当前二进制表示

    print(strs[j], end="")

    print()

    if __name__ == '__main__':

    combination(['a','b','c']) # combination(list('abc'))

    输出结果为:

    a

    b

    ab

    c

    ac

    bc

    abc

    展开全文
  • 单独一行的输入 #include <iostream> #include <string> using namespace std; int main() { //对于char* / char[] char s[1001]; cout<<"Please input char[]:"<<endl; cin.getline...

    单独一行字符的输入

    #include <iostream>
    #include <string>
    using namespace std;
     
    int main()
    {
    	//对于char* / char[]
    	char s[1001];
    	cout<<"Please input char[]:"<<endl;
    	cin.getline(s, 1000);//iostream下的函数, 第二个参数表示允许的最大输入长度
    	cout<<"Output:"<<endl<<s<<endl<<strlen(s)<<endl; 
     
    	//对于string
    	string ss;
    	cout<<"Please input string:"<<endl;
    	getline(cin, ss); //这个getline函数在<string>头文件下
    	cout<<"Output:"<<endl<<ss<<endl<<ss.length()<<endl;
     
    	return 0;
    }
    
    

    输入一句话,把单词单独存储起来

    1.直接根据输入单独存储。

    	vector<string> ss;
    	string s;
    	cin.get();
    	while (cin.peek() != '\n')
    	{
    		cin >> s;
    		ss.push_back(s);
    	}
    

    2.先保存一行,然后分割成单词

    //输入一行话str,把单词都保存进vecstr
    vector<string> vecStr;
        char str[1000];
        cin.getline(str, 1000);//1000为最大输入长度
        const char* split = ",; ;!";
        char* p = strtok(str, split);
        while (p != NULL)
        {
            vecStr.push_back(p);
            p = strtok(NULL, split);
        }
    

    循环输入一组后,再循环输入一组

    #include <iostream>
    #include <vector>
    
    using namespace std;
    
    int main()
    {
        int t1, t2, r;
        vector<int> x, y;
        cout << "请输入x的值" << endl;
        while (cin >> t1, t1) {
            x.push_back(t1);
        }
        cout << "请输入y的值" << endl;
        while (cin >> t2, t2){
            y.push_back(t2);
        }
        cout << "请输入r的值" << endl;
        cin >> r;
    
        for (int i = 0; i < y.size(); i++)
            cout << y[i] << " ";
    
        cout << "\nr=" << r << endl;
        return 0;
    }
    

    一行两个字符串,连续输入n行

    #include <iostream>
    #include<string>
    #include<vector>
    #include<utility>
    using namespace std;
    
    int main()
    {
    	int n;
    	string A, B;
    	vector<pair<string, string>> city;
    	cin >> n;
    	cin.get();
    	while (n--) {
    		getline(cin, A, ' ');//遇到空格停止,读取第一个字符串串
    		getline(cin, B, '\n');//遇到换行停止,此时读取了第二个字符串
    		city.push_back(pair<string, string>(A, B));
    	}
    
    }
    

    或者

    int main()
    {
    	int n;
    	string A, B;
    	vector<pair<string, string>> city;
    	cin >> n;
    	while (n--) {
    		cin >> A >> B;
    		city.push_back(pair<string, string>(A, B));
    	}
    }
    
    输入:
    Beijing  Nanjing
    Nanjing  Guangzhou
    
    

    连续输入一行整数,个数未定,循环输入, 以回车结束

    int a;
    vector<int> num;
    while(cin.peek()!='\n')  //cin.peek()相当于偷看一眼再放回流中
        {
            cin>>a;
            num.push_back(a);
        }
    
    展开全文
  • 题目输入一个字符串,输出该字符串中字符的所有组合。例如abc,它的组合有a、b、c、ab、ac、bc、abc。第一种思路使用递归求解,可以考虑长度为n的字符串中m个字符的组合,设为C(n, m),原问题的解即为C(n, 1)、C(n, ...
  • 在一行中输出循环左移N次后的字符串输入样例: 在这里给出一组输入。例如: 123456 2 输出样例: 在这里给出相应的输出。例如: 345612 #include<stdio.h> #include<string.h> int main() { int n,i,k...
  • Java:循环输入字符串,输入0终止

    千次阅读 2019-06-28 16:04:00
    package ch01; import java.util.Scanner; public class string1 { public static void main(String[] args) { String s=" ";... System.out.print("请输入串字符:"); while(!s.equa...
  • 输入字符串进行排序后输出 输入描述: 输入有两行,第一行n 第二行是n个空格隔开的字符串 输出描述: 输出一行排序后的字符串,空格隔开,无结尾空格 #include <stdio.h> int main() { int n, i...
  • (c语言)如何输入一串字符串

    千次阅读 2021-12-01 20:28:10
    在从语言中如何输入一串中间还有不可打印字符的字符串呢?
  • c语言-字符串循环左移

    千次阅读 2020-08-16 15:32:42
    字符串循环左移,指的是将字符串整体向左移动,左部超出范围的字符回到右边,比如对于字符串123,它循环左移1位的结果是231。 在右侧编辑器中有一个函数Shift,它有两个参数str和n,str存有一个字符串,n为要左移...
  • 字符串和数的正确输入

    千次阅读 2021-11-14 20:29:23
    首先注意,字符串一般用char型数组储存,数组一般用int型数组储存。 字符串: char name[20] = {0}; scanf("%s", name); 数组: int c[10]={0}; for(int i=0:i<10;scanf("%d",&c[i++]);因为没有特点的...
  • 输入字符串(每个字符串长度不超过100个字符),每个字符串占一行,输入的行为“***end***”时表示输入结束 输出说明 输出其中最长的一行长度后换行再输出最长行的内容,如果最长行不止一个,则输出其中的...
  • Java循环拼接字符串

    千次阅读 2020-06-27 13:17:22
    package computerPractice; import java.util.Scanner; public class StringSplicing { public static void main(String[] args) { ... System.out.print("请输入一个字符串(输入000退出):"); str
  • while循环读入不定长度的一行一行的字符串
  • 题目:输入一个字符串,求出该字符串的所有的排列,例如输入abc,则可以得到的所有的字符串的排列为abc,acb,bac,bca,cab,和cba。 如何求一个字符串的全排列呢,猛然间看到这个题目自己一下子还真的想不出来如何...
  • 在某论坛看到的某大神的写法,学到了学到了!! string s; while(getline(std::cin,s)&amp;&amp;!s.empty()){ } char s[maxn]; while(gets(s)&amp;&amp;strcmp(s,"... ...
  • //统计字符串中0~9 每个数字出现的次数并输出 #include<stdio.h> #include<string.h> void main() { char s[80]; //用于接收字符串 int count[10]={0}; //创建int型数组并初始化,用于统计0~9出现的次数,...
  • str = input('请输入一个字符串:') lst = [] for i in range(1, len(str)+1): lst1 = [''.join(x) for x in itertools.permutations(str, i)] lst += lst1 print(lst) 主要使用的it...
  • C/C++语言连续读入一组字符串

    千次阅读 2018-09-29 12:40:11
    若使用C语言连续读入一个)字符串,则面临如下问题: 1 若使用“%s”格式读入,则输入过程遇到空格、table,回车后自动终止输入,无法输入空格。 2若使用“%c”格式读入,如何连续输入多字符串?即如何实现...
  • 我们在工作中,经常会遇到把字符串切割成数的情况,官方也为我们提供了 stringObject.split(separator,howmany) 方法,实例: const str = '开心哈哈哈哈,悲伤哈哈哈,快乐哈哈哈,是你,开始,开心,悲伤' ...
  • 2、字符串大写字母改小写字母,小写字母不变,则说明要进行循环遍历字符串,找出大写字母变小写字母,其他字符忽略即不是字母的忽略掉。 3、输出结果 代码实现: import java.util.Scanner; public class Demo03 {...
  • Python 中如何实现多组输入输出

    千次阅读 2020-11-20 23:16:15
    多组数据的输入:while True:try:a,b,c=map(int,input().split())print(a+b+c)except:break实现特定的次数的输入:n=int(input())print (n,type(n))i=0while i ,b,c=map(int,input().split())print (a+b+c)i=i+1#...
  • 可能有多组测试数据,对于每数据,如果是回文字符串则输出"Yes!”,否则输出"No!"。 输入 hellolleh helloworld 输出 Yes! No! C++实现: #include&lt;iostream...
  • 字符串输入和输出

    千次阅读 2021-06-02 19:38:16
    这一篇博客我们一起来学习字符串输入和输出. 在定义一个字符数组时, 一定要保证数组的长度比
  • 字符串倒序输出

    千次阅读 2021-01-19 08:50:40
    题目:输入一个字符串,将该串倒序输出。例如输入字符串'hello',倒序输出为'olleh'。 str1 = str(input('请输入字串: ')) print('输入的字符是:%s'%str1) str2 = ''#定义一个空串用来接收倒序后的字串 for i in...
  • C语言输入一串字符找出最长字符串

    千次阅读 2019-06-25 20:58:45
    #include<stdio.h> #include<...//定义四个字符数组,数组a存储 数组b中间变量 数组c单词长度 数组d最长单词 int i,k;//循环变量 int x, max=0;//x为单词长度max为最长单词长度 gets(a); ...
  • C语言多组输入字符输入(小白)

    千次阅读 多人点赞 2020-02-21 22:39:00
    C语言的几个模板 多组输入 1.已知数n for(i=0;i<n;i++){ } while(n--){ } 2.未知数 while(scanf("%d%d",&a,&b)!=EOF){ }//计算多组a+b的时候未知数 或者 w...
  • 编写程序,循环接收用户从键盘输入多字符串,直到输入“end”时循环结束,并将所有已输入字符串按字典顺序倒序打印。 package com.itheima; import java.lang.reflect.Array; import java.util.Arrays; ...
  • 试设计一程序,该程序从键盘输入一个字符串输入字符串最大允许15个字符且以回车字符结束(15个字符含回车符)。同时,如果输入字符串中有数字字符,则将数字字符删除,并新起一行显示处理后的字符串。 以下是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 253,644
精华内容 101,457
热门标签
关键字:

循环输入多组字符串