精华内容
下载资源
问答
  • C++中输入字符串的几种方法

    万次阅读 多人点赞 2018-08-26 17:19:39
    C++中常见的几种输入字符串的方法如下: cin、cin.get()、cin.getline()、getline()、gets()、getchar() 1. cin>> 用法一:最常用、最基本的用法,输入一个数字: #include <iostream&...

    C++中常见的几种输入字符串的方法如下:

    cin、cin.get()、cin.getline()、getline()、gets()、getchar()

    1. cin>>

    用法一:最常用、最基本的用法,输入一个数字:

    #include <iostream>
    using namespace std;
    main ()
    {
    int a,b;
    cin>>a>>b;
    cout<<a+b<<endl;
    }
    ​
    输入:2[回车]3[回车]
    输出:5

    用法二:接受一个字符串,遇“空格”、“Tab”、“回车”都结束

    #include <iostream>
    using namespace std;
    main ()
    {
    char a[20];
    cin>>a;
    cout<<a<<endl;
    }
    ​
    输入:jkljkljkl
    输出:jkljkljkl
    ​
    输入:jkljkl jkljkl //遇空格结束,所以不能输入多个单词
    输出:jkljkl

    2. cin.get()

    用法一:cin.get(字符变量名)可以用来接收字符

    #include <iostream>
    using namespace std;
    main ()
    {
    char ch;
    ch=cin.get(); //或者cin.get(ch);只能获取一个字符
    cout<<ch<<endl;
    }
    ​
    输入:jljkljkl
    输出:j

    用法二:cin.get(字符数组名,接收字符数)用来接收一行字符串,可以接收空格

    #include <iostream>
    using namespace std;
    main ()
    {
    char a[20];
    cin.get(a,20); //有些类似getline。可以输入多个单词,中间空格隔开。
    cout<<a<<endl;
    }
    ​
    输入:jkl jkl jkl
    输出:jkl jkl jkl
    ​
    输入:abcdeabcdeabcdeabcdeabcde (输入25个字符)
    输出:abcdeabcdeabcdeabcd (接收19个字符+1个'\0')
    ​
    ​

    用法三:cin.get(无参数)没有参数主要是用于舍弃输入流中的不需要的字符,或者舍弃回车,弥补cin.get(字符数组名,接收字符数目)的不足.

    #include <iostream>
    using namespace std;
     
    int main(void)
    {
         
        char arr[10];
        cin.get(arr,10);
        cin.get();//用于吃掉回车,相当于getchar();
        cout<<arr<<endl;
        cin.get(arr,5);
        cout<<arr<<endl;
        system("pause");
        return 0;
    }
     
    输入abcdefghi
    输出abcdefghi
    输入abcde
    输出abcd
    请按任意键继续
     
    #include <iostream>
    using namespace std;
     
    int main(void)
    {
         
        char arr[10];
        cin.get(arr,10);
        //cin.get();//用于吃掉回车,相当于getchar(); 现在把这行注释掉试试看
        cout<<arr<<endl;
        cin.get(arr,5);
        cout<<arr<<endl;
        system("pause");
        return 0;
    }
     
    输入abcdefghi
    输出abcdefghi
    请按任意键继续

    3.cin.getline()

    cin.getline() // 接受一个字符串,可以接收空格并输出

    #include <iostream>
    using namespace std;
    main ()
    {
    char m[20];
    cin.getline(m,5); //与上面基本相同。
    cout<<m<<endl;
    }
    ​
    输入:jkljkljkl
    输出:jklj
    接受5个字符到m中,其中最后一个为'\0',所以只看到4个字符输出;
    ​
    如果把5改成20:
    输入:jkljkljkl
    输出:jkljkljkl
    ​
    输入:jklf fjlsjf fjsdklf
    输出:jklf fjlsjf fjsdklf
    //延伸:
    //cin.getline()实际上有三个参数,cin.getline(接受字符串到m,接受个数5,结束字符)
    //当第三个参数省略时,系统默认为'\0' 是‘/n’吧。
    //如果将例子中cin.getline()改为cin.getline(m,5,'a');当输入jlkjkljkl时输出jklj,输入jkaljkljkl时,输出jk
    当用在多维数组中的时候,也可以用cin.getline(m[i],20)之类的用法:
    ​
    #include<iostream>
    #include<string>
    using namespace std;
    ​
    main ()
    {
    char m[3][20];
    for(int i=0;i<3;i++)
    {
    cout<<"\n请输入第"<<i+1<<"个字符串:"<<endl;
    cin.getline(m[i],20);
    }
    ​
    cout<<endl;
    for(int j=0;j<3;j++)
    cout<<"输出m["<<j<<"]的值:"<<m[j]<<endl;
    ​
    }
    ​
    请输入第1个字符串:
    kskr1
    ​
    请输入第2个字符串:
    kskr2
    ​
    请输入第3个字符串:
    kskr3
    ​
    输出m[0]的值:kskr1
    输出m[1]的值:kskr2
    输出m[2]的值:kskr3
    ​

    4. getline()

    getline() // 接受一个字符串,可以接收空格并输出,需包含“#include<string>”

    #include<iostream>
    #include<string>
    using namespace std;
    main ()
    {
    string str;
    getline(cin,str);
    cout<<str<<endl;
    }
    ​
    输入:jkljkljkl //VC6中有个bug,需要输入两次回车。
    输出:jkljkljkl
    ​
    输入:jkl jfksldfj jklsjfl
    输出:jkl jfksldfj jklsjfl
    ​
    和cin.getline()类似,但是cin.getline()属于istream流,而getline()属于string流,是不一样的两个函数

    5. gets()

    gets()// 接受一个字符串,可以接收空格并输出,需包含“#include<string>

    #include<iostream>
    #include<string>
    using namespace std;
    main ()
    {
    char m[20];
    gets(m); //不能写成m=gets();
    cout<<m<<endl;
    }
    ​
    输入:jkljkljkl
    输出:jkljkljkl
    ​
    输入:jkl jkl jkl
    输出:jkl jkl jkl
    ​
    类似cin.getline()里面的一个例子,gets()同样可以用在多维数组里面:
    ​
    #include<iostream>
    #include<string>
    using namespace std;
    ​
    main ()
    {
    char m[3][20];
    for(int i=0;i<3;i++)
    {
    cout<<"\n请输入第"<<i+1<<"个字符串:"<<endl;
    gets(m[i]);
    }
    ​
    cout<<endl;
    for(int j=0;j<3;j++)
    cout<<"输出m["<<j<<"]的值:"<<m[j]<<endl;
    ​
    }
    ​
    请输入第1个字符串:
    kskr1
    ​
    请输入第2个字符串:
    kskr2
    ​
    请输入第3个字符串:
    kskr3
    ​
    输出m[0]的值:kskr1
    输出m[1]的值:kskr2
    输出m[2]的值:kskr3
    ​
    自我感觉gets()和cin.getline()的用法很类似,只不过cin.getline()多一个参数罢了;
    ​
    这里顺带说明一下,对于本文中的这个kskr1,kskr2,kskr3的例子,对于cin>>也可以适用,原因是这里输入的没有空格,如果输入了空格,比如“ks kr jkl[回车]”那么cin就会已经接收到3个字符串,“ks,kr,jkl”;再如“kskr 1[回车]kskr 2[回车]”,那么则接收“kskr,1,kskr”;这不是我们所要的结果!而cin.getline()和gets()因为可以接收空格,所以不会产生这个错误;

    6.getchar()

    getchar()//接受一个字符,需包含“#include<string>

    #include<iostream>
    using namespace std;
    main ()
    {
    char ch;
    ch=getchar(); //不能写成getchar(ch);
    cout<<ch<<endl;
    }
    ​
    输入:jkljkljkl
    输出:j
    ​
    //getchar()是C语言的函数,C++也可以兼容,但是尽量不用或少用;
    展开全文
  • 本题要求编写函数,将输入字符串t中从第m个字符开始的全部字符复制到字符串s中。 函数接口定义: void strmcpy( char *t, int m, char *s ); 函数strmcpy将输入字符串char *t中从第m个字符开始的全部字符复制到字符...

    使用函数实现字符串部分复制 (20分)

    本题要求编写函数,将输入字符串t中从第m个字符开始的全部字符复制到字符串s中。

    函数接口定义:

    void strmcpy( char *t, int m, char *s );

    函数strmcpy将输入字符串char *t中从第m个字符开始的全部字符复制到字符串char *s中。若m超过输入字符串的长度,则结果字符串应为空串。

    裁判测试程序样例:

    #include <stdio.h>
    #define MAXN 20
    
    void strmcpy( char *t, int m, char *s );
    void ReadString( char s[] ); /* 由裁判实现,略去不表 */
    
    int main()
    {
        char t[MAXN], s[MAXN];
        int m;
       scanf("%d\n", &m);
        ReadString(t);
        strmcpy( t, m, s );
        printf("%s\n", s);
          return 0;
    }
    
    / * 你的代码将被嵌在这里 * /
    

    输入样例:
    7
    happy new year

    输出样例:
    new year

    答案:`

     **void strmcpy( char *t, int m, char *s )
    {   
    int i,j;
    for(i=0,j=0;i<MAXN;i++)
    	{
    	if(*(t+i)!='\0')j++;
    	if(*(t+i)=='\0')break;
    	}
    / *printf("%d\n",j);计算字符串t[]的长度 / *
    for(i=0;i<j;i++)
    	if(m<=j)*(s+i)=*(t+m-1+i);
        else *(s+i)='\0';
    }
    
    
    展开全文
  • VS中输入字符串和输出字符串问题

    千次阅读 多人点赞 2019-05-24 23:50:24
    VS中输入字符串和输出字符串问题 ** 因为自己刚开始用VS,不是很习惯,今天发现一个问题,就是我想实现输入一段字符串,然后在将它输出来,发现没有输出,反而是听了一会儿,然后闪退了,同样的代码放到Dev C++运行...

    **

    VS中输入字符串和输出字符串问题

    **
    因为自己刚开始用VS,不是很习惯,今天发现一个问题,就是我想实现输入一段字符串,然后在将它输出来,发现没有输出,反而是听了一会儿,然后闪退了,同样的代码放到Dev C++运行却很好使,我的代码如下:

    #include "stdio.h"
    #include "stdlib.h"
    #include "string.h"
    
    int main(void)
    {
    	char a[1000];
    	int i;
    
    	scanf_s("%s", a);
    	printf("%s", a);
    
    	system("pause");
    	return 0;
    }
    

    找了挺久的问题,最后发现,因为VS自己加入了安全输入函数,scanf_s(),而这个函数的用法不能像上面那么用,正确的用法应该是:

    #include "stdio.h"
    #include "stdlib.h"
    #include "string.h"
    
    int main(void)
    {
    	char a[1000];
    	int i;
    
    	scanf_s("%s", a, sizeof(a));  //需要加一个传入参数
    	printf("%s", a);
    
    	system("pause");
    	return 0;
    }
    

    这时候运行就正常了,不想这么麻烦的话可以不用scanf_s(),而是用scanf(),代码如下:

    #define _CRT_SECURE_NO_WARNINGS 1
    #include "stdio.h"
    #include "stdlib.h"
    #include "string.h"
    
    int main(void)
    {
    	char a[1000];
    	int i;
    
    	scanf("%s", a);
    	printf("%s", a);
    
    	system("pause");
    	return 0;
    }
    

    这样也能成功,至于#define _CRT_SECURE_NO_WARNINGS 1这个怎么实现一劳永逸,请参考我的另一篇博客。

    展开全文
  • Scanner s=new Scanner...请输入字符串"); String t=s.next(); //System.out.println(t); System.out.println("请输入子字符串"); String y=s.next(); //System.out.println(y); Str...
    Scanner s=new Scanner(System.in);
    		System.out.println("请输入字符串");
    		String t=s.next();
    		//System.out.println(t);
    		System.out.println("请输入子字符串");
    		String y=s.next();
    		//System.out.println(y);
    		String[]a=t.split(y);
    		System.out.println(a.length-1);
    
    展开全文
  • •连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组; •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。 输入描述: 连续输入字符串(输入2次,每个字符串长度小于100) 输出描述: ...
  • 输入的字符串可能有空格,要求...一个数,表示要输入几组数据,然后输入字符串; 若是回文字符串,则输出yes,否则输出no; 例如 3 qwe abba ds ds no yes no 求代码。。 初学C这问题想了很久,求帮忙。。
  • 输入字符串的方式

    千次阅读 多人点赞 2019-05-19 17:15:27
    C++中常用的几种输入字符串的方式 1.scanf scanf如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理 #include <cstdio> using namespace std; int main (){ char s[100]; scanf("%s",s); ...
  • •连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组; •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。 输入描述: 连续输入字符串(输入2次,每个字符串长度小于100) 输出描述: ...
  • 连续输入字符串(输出次数为N,字符串长度小于100),请按长度为8拆分每个字符串后输出到新的字符串数组, 长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。 首先输入一个整数,为要输入的字符串个数。 ...
  • 程序:输入字符串和正规式,判断字符串是否满足正规式 要用c或者Java写 不要用matches函数啊大佬们!!不然我也会。。
  • scanf输入字符串遇到空格?

    万次阅读 多人点赞 2019-06-02 12:34:49
    scanf输入字符串(含有空格的字符串,例如:“I love you!”)时,总是在空格处停止扫描。我们用scanf("%s",str);输入 “I love you!” 字符串后,str输出却只有 “I” ,这并不是我们想要的。这是因为scanf扫描到 ...
  • python输入字符串然后列表输出字符ASCII码 str=input('请输入一个字符串:') a=[0]*len(str) #数组初始化 i=0 for x in str: a[i]=ord(x) #将字符转换为ASCII码 i=i+1 result=list(a) print("字符串的ASCII码为:...
  • 很easy的题目,对字符串的处理,基础题。代码如下,请大神指导,谢谢。 #include #include using namespace std; int main(void) { string str;... //接收输入字符串 cout<<"please input a string:
  • 连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组
  • java读取输入字符串的操作

    万次阅读 多人点赞 2019-03-29 20:37:18
    读取输入字符串的方法: 通过Scanner类读取字符串的方法next()和nextLine() import java.util.*; public class Main{ public static void main(String []args){ Scanner scanner = new Scanner(System.in); ...
  • 从键盘任意输入一个字符串(字符串可以有空格), 在给定的一组字符串中寻找该输入字符串, 若找到,则打印该字符串,否则打印"Not find!"。 对应标号注释在下面 #include <string.h> #include <stdio.h>...
  • java怎么输入字符串和一行字符串

    万次阅读 多人点赞 2015-01-13 19:47:10
    1输入字符串 遇到空格或者换行结束 Scanner sc=new Scanner(System.in); String str=new String(); str=sc.next(); 2输入一行字符串,可以包括空格 Scanner sc=new Scanner(System.in); String str=new ...
  • 用指定字符或字符串分割输入字符串,返回包含分割结果的数组
  • C语言中从键盘输入字符串时的一些问题

    万次阅读 多人点赞 2019-05-17 20:52:10
    C语言中从键盘输入字符串时的一些问题 1.scanf() scanf()在输入字符串时有很大的弊端, 例如: 1). scanf()在从键盘读入字符时并不会根据所定义的字符数组的大小来控制读入多少个 , 而是从scanf( ) 中传入的地址开始...
  • 题目描述•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组; •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。 输入描述:连续输入字符串(输入2次,每个字符串长度小于100)输出描述:...
  • 编写一个能将输入字符串大小写转换的程序。转换的意思是输入字符串的大写变小写、小写变大写。如:输入“Hello”,变成“hELLO”。 思路:先输入字符长度,然后利用动态数组功能实现内存分配,然后输出转换后字符串...
  • 题目:连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组; 解题思路:判断每次输入的字符串长度是否为8的倍数,若是8的倍数,直接输出就行;若不是8的倍数,则需要补0的个数为8-len%8; 注意:gets()和...
  • 例如,输入字符串abcaca,输出bcc。 输入样例: abcaca 输出样例: bcc 代码块 #include <iostream> #include<string> using namespace std; //本题要求编写程序,使用指针方式实现两个字符串...
  • 输入字符串按字符顺序升序输出

    千次阅读 2018-05-10 17:12:49
    输入:测试数据有多组,输入字符串。输出:对于每组输入,输出处理后的结果。样例输入:bacd样例输出:abcdc语言代码:#include &lt;stdio.h&gt; #include &lt;string.h&gt; int main() { char s...
  • C语言-判断输入字符串是否为回文串

    万次阅读 多人点赞 2019-11-28 20:51:24
    C语言-判断输入字符串是否为回文串 通过定义一个s字符数组,gets函数控制输入 i、j双指针来回判断字符数组的位置,和对应位置的值的比较, while循环的条件 i<=j&&s[i]==s[j] 最终判断i、j的关系,...
  • C++输入字符串的几种方式

    万次阅读 多人点赞 2019-05-10 10:20:21
    最近有复习到 C++ 基础知识,这里总结下在 C++ 中输入字符串的几种方式,有需要的可以参考: 1、cin >> void Cin1() //输入一个数字 { int a, b; cin >> a >> b; cout << "a + ...
  • c总结 使用scanf输入字符串问题

    万次阅读 多人点赞 2018-08-23 18:35:02
    学习c时经常遇到字符串的输入问题,使用scanf输入时总是会或多或少的遇到错误,总结一下我遇到过的情况 ...还没有输入字符串输入就结束了。当我们需要调用scanf输入的时候,输入的字符送到键盘缓冲区,然后s...
  • 编写程序,输入字符串S1和S2 以及插入位置n,在字符串S1中的指定位置n处插入字符串S2。例如,输入“jiangsu”、“123”和位置3,则输出“ji123angsu”。
  • 请编写函数fun(char *s),其功能是:删除字符串中的数字字符。主函数中输入字符串,调用函数,并输出结果字符串。例如若输入的字符串是:34AB9C6DE, 则应输出:ABCDE
  • 1.程序功能为输入5个字符串,使用库函数strcmp()比较字符串大小,由小到大排序并输出。下列程序 代码有错误,请修改为正确代码。 输入格式: 请输入5个字符串字符串可以包含空格。 输出格式: 请输出排序后的字符串...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 190,700
精华内容 76,280
关键字:

输入字符串