精华内容
下载资源
问答
  • C语言输入带空格的字符串

    万次阅读 多人点赞 2017-12-08 12:52:43
    的话遇到空格就停止接收后面的字符了,那怎么才能接收带空格的字符串呢? 1.用 gets() ,它可以接收带空格的字符串, 直到回车才结束输入 char buf[80]={0};  gets(buf); //可以读取空格, 回车结束输入 ...

    用scanf("%s",array); 的话遇到空格就停止接收后面的字符了,那怎么才能接收带空格的字符串呢?

    1.用 gets() ,它可以接收带空格的字符串, 直到回车才结束输入

    char buf[80]={0}; 
    gets(buf);   //可以读取空格, 回车结束输入

    2.使用"%[^\n]" 也是可以接收输入一个带空格的字符串,直到回车结束接收

    char buf[10] = {0};

    scanf("%[^\n]",buf); //可以读取空格,回车结束输入

    注意:scanf_s("%s",buf,10); 不能接收带空格的字符串输入,虽然它的指定长度是10, 但是遇到空格时即使没有满10个字符它也自动结束输入了。

     

    [xxx],%[abc]表示字符组合包括a、b和c,如果遇到这三个字符之外的字符,则停止接收。%[^abc]代表字符组合为abc以外的所有字符,至于横杠是否用于指定某个范围的字符%[a-z],则因编译器而异。

    展开全文
  • 的话遇到空格就停止接收后面的字符了,那怎么才能接收带空格的字符串呢? 1.用 gets() ,它可以接收带空格的字符串, 直到回车才结束输入 char buf[80]={0}; gets(buf); //可以读取空格, 回车结束输入 2.使用"%[^\...

    用scanf("%s",array); 的话遇到空格就停止接收后面的字符了,那怎么才能接收带空格的字符串呢?

    1.用 gets() ,它可以接收带空格的字符串, 直到回车才结束输入

    char buf[80]={0};
    gets(buf);   //可以读取空格, 回车结束输入

    2.使用"%[^\n]" 也是可以接收输入一个带空格的字符串,直到回车结束接收

    char buf[10] = {0};

    scanf("%[^\n]",buf); //可以读取空格,回车结束输入

    注意:scanf_s("%s",buf,10); 不能接收带空格的字符串输入,虽然它的指定长度是10, 但是遇到空格时即使没有满10个字符它也自动结束输入了。

     

    […]和[^…]是scanf中一种很少见到但是很有用的转换字符串

    #include <stdio.h>

    main()

    {

    char strings[100];

    scanf("%[1234567890]”,strings);

    printf(“%s”,strings);

    return (  0 );

    }

    运行输入:125eqe后, 打印结果是 125.

    它的作用是从输入的第一个字符开始算起,到地n个字符如果都是中括号中的字符,而第n+1个字符不是这个中括号中的字符,则提取前面n个字符,并自动添加一个结束符号,此外第n+2个算起不管是不是这个中括号中的字符,都不再提取。如:

    scanf("%[1234567890]",strings ); 如果输入123567ascds3838 那么输出的结果是:123567  而不是:1235673838 。 要注意的是:面对scanf("%[1234567890]",strings); 输入的第一个字符必须是这个中括号中的数字它才开始提取,否则将输出乱码,如输入:adc123djfdj8907907, 这里输入的第一个字符是字符而不是中括号中的数字,那么将输出乱码,而不是把后面的那些数字输出来!

    还有需要注意: 方括号两边不能有空格,如scanf("%[  123  ]",strings); 这样是错误的,最终得不到正确的结果的,此外如果想把输入的字符中当碰到数字就截断时可以使用如下形式:

    scanf("%[^1234567890]",strings) ; 这样当输入的字符中遇到包含中括号的数字时就自动结束接收,例如输入:-=-=sakjfd123, 那么打印strings的结果将是::-=-=sakjfd, 但是要注意如果一开始就输入数字那么就会显示乱码,如输入:1265423sdjfksdkf, 那么结果将会显示乱码!

    "%[^\n]" 之所以能接收带空格的输入,是因为它接收所以的字符输入只要不输入\n (即回车键的转义符)它就一直接收,直到超过变量能够接收的长度,遇到\n 则自动结束输入操作。

    下面是MSDN的scanf格式参数的允许情况,注意%[]在最后

    Conversion Argument Conversion
    Specifier Type Function Base
    %c char x[]
    %lc wchar_t x[]
    %d int *x strtol 10
    %hd short *x strtol 10
    %ld long *x strtol 10
    %e float *x strtod 10
    %le double *x strtod 10
    %Le long double *x strtod 10
    %E float *x strtod 10
    %lE double *x strtod 10
    %LE long double *x strtod 10
    %f float *x strtod 10
    %lf double *x strtod 10
    %Lf long double *x strtod 10
    %g float *x strtod 10
    %lg double *x strtod 10
    %Lg long double *x strtod 10
    %G float *x strtod 10
    %lG double *x strtod 10
    %LG long double *x strtod 10
    %i int *x strtol 0
    %hi short *x strtol 0
    %li long *x strtol 0
    %n int *x
    %hn short *x
    %ln long *x
    %o unsigned int *x strtoul 8
    %ho unsigned short *x strtoul 8
    %lo unsigned long *x strtoul 8
    %p void **x
    %s char x[]
    %ls wchar_t x[]
    %u unsigned int *x strtoul 10
    %hu unsigned short *x strtoul 10
    %lu unsigned long *x strtoul 10
    %x unsigned int *x strtoul 16
    %hx unsigned short *x strtoul 16
    %lx unsigned long *x strtoul 16
    %X unsigned int *x strtoul 16
    %hX unsigned short *x strtoul 16
    %lX unsigned long *x strtoul 16
    %[...] char x[]
    %l[...] wchar_t x[]
    %% none

    转载于:https://www.cnblogs.com/AI-Algorithms/p/3390270.html

    展开全文
  • ```cpp #include <iostream> #include <cstdio> #include <math.h> //#include <string>... //怎么输入带空格的字符串 char str1[100],str2[100]; int n; string ss; //cin>.
    
    ```cpp
    #include <iostream>
    #include <cstdio>
    #include <math.h>
    //#include <string>
    #include <algorithm>
    using namespace std;
    
    int main()
    {
        //怎么输入带空格的字符串
        char str1[100],str2[100];
        int n;
        string ss;
        //cin>>str1;
        //puts(str1);
        //scanf("%s",str2);
        //puts(str2);
        //普通的scanf和cin均不能输入带空格的字符串
        //下面开始寻求其他函数解决这个问题
        getline(cin,ss);
        //istream& getline(ss,n);
        //puts(ss);
        //cin.get  和cin.getline的用法和区别
        //难道只能输入一行,遇到空格符号就结束
        cout<<ss<<endl;
        cin.get(str1,50);
        cin.getline(str2,50);
        puts(str1);
        puts(str2);
        
        return 0;
    }
    
    
    
    展开全文
  • 机试时候碰到问题,当时脑子卡克到想不出来怎么处理,用了一种贼复杂方法,,现在整理下! C语言 方法1 #include <stdio.h> #include <stdlib.h> int main() { char s[100]; gets(s); ...

    机试的时候碰到的问题,当时脑子卡克到想不出来怎么处理,用了一种贼复杂的方法,,现在整理下!

     

    C语言

     方法1

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        char s[100];
        gets(s);
    
        printf("%s",s);
        return 0;
    }
    

    一句gets解决的事情,我居然tm没想起来。。。。太羞耻了

    gets读取一行,遇到\n结束,它会把\n一并读取,并将\n替换为\0   (\n不会留在缓冲区) 

     

    方法2

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        char s[100];
        //scanf("%*c"); 如果前面有输入过,则用它来吸收最后的\n
    
        int i=0;
        while(scanf("%c",&s[i]),s[i]!='\n')
            i++;
    
        s[i]='\0';
        printf("%s",s);
        return 0;
    }
    

    每接收一个字符并存入,读到\n结束

     

    方法3

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        char s[100];
        fgets(s,40,stdin);
    
        printf("%s",s);
        return 0;
    }
    

    和gets差不多,fgets会读取行尾的\n,然后再添加\0 最后是 xxxx\n\0  (\n不会留在缓冲区)

     

     

    C++

    方法1

    #include <iostream>
    using namespace std;
    
    string s;
    
    int main(){
    	getline (cin,s);
    	cout<<s<<endl;
    	return 0;
    }
    
    

    需要包含头文件#include<string>

    如果需要转化为char*,在C++中string封装了字符串的操作,总结一下,把string转化为字符数组或指针有一下三种方式:

    //(1)c_str()
    
          string str="hi,girls!";
          char *p=str.c_str();
    
    
    //(2)data()
    
          string str="hello";
          char *p=str.data();
    
    
    //(3)copy(p,len,start)
    
        string str="howareyou";
         char pStr[40];
         str.copy(pStr,7,0); //7代表复制几个字符,0代表复制的位置
         *(pStr+7)='\0';     //手动加上结束符

     

    方法2

    #include <iostream>
    using namespace std;
    
    const int N = 20;
    char x[N+1];
    
    int main(){
    	cin.getline (x,N+1); //这里最好写N+1,因为字符串末尾的的'\0'也包含在这个长度之内.
    	cout<<x<<endl;
    	printf ("%s\n",x);
    	return 0;
    }
    
    

    需要包含头文件#include<iostream>

     

     

    参考文献:

    https://blog.csdn.net/cool_oyty/article/details/7738703

    https://blog.csdn.net/qq_34600424/article/details/79432947

     

    展开全文
  • <p>#include <iostream> #include <string> using namespace std; void strmcpy(string s,int m,string t) {<!-- -->  int z;  z=... </p>
  • C语言中scanf函数输入字符串时,当遇到空格或回车时,认为字符串已经输入到结尾,但是如果开头输入一个空格,scanf还是会继续往下存储直到遇到第二个空格或回车。因此,要在字符串数组中输入空格,就不要使用scanf...
  • 如何使用scanf输入多个带空格的字符串

    千次阅读 多人点赞 2018-04-04 17:04:06
    写题时使用scanf输入,但是我想优化一下,让程序的的通用性更强一些,故我想使用scanf实现带空格的字符串输入,但是出现了疑惑,字符串带空格输入怎么弄,显然scanf("%s",str);肯定不行,所以我查了资料...
  • 在C++中,常用的输入方式cin默认的分隔符非常多,其中就包括空格,所以不能直接用cin输入带空格的字符串,不然会被系统自动分成好几个字符串。正确输入带空格的字符串的方法如下: 使用getline函数 对于字符数组,...
  • 一开始学的输入流 #include <string > #include <iostream> using namespace std; int main(){ string a; cin>>a; cout<<a; return 0; } 如果输入 hello world 输出是 hello 没有world ...
  • 的话遇到空格就停止接收后面的字符了,那怎么才能接收带空格的字符串呢? 1.用 gets() ,它可以接收带空格的字符串, 直到回车才结束输入 char buf[80]={0};  gets(buf);   //可以读取空格, 回车...
  • .NET C#字符串替换问题

    2013-12-21 11:13:43
    Console.WriteLine("请输入带空格的字符串:"); string str = ""; CharEnumerator CEnumerator = Console.ReadLine().GetEnumerator(); while (CEnumerator.MoveNext()) { byte[] array = new byte[1]; ...
  • C&C++输入方法总结

    千次阅读 2015-09-07 00:50:18
    这个总结时缘于暑假刷ACM的时候发现在不同的输入格式下有时候不知道怎么处理,甚至会影响后面对数据的处理方法的选择,容易卡住,然后把时间都花在百度“怎么输入带空格的字符串”等一系列初级问题。做个总结。 1. ...
  • 0x02的字符是键盘所不能输入的(这两个字符称作隐藏字符,对应的8进制是001,002,打印出来的视觉效果与空格相同,但是相比空格的好处就是这两个字符是从键盘无法输入的,所以避免了如果数据中本身带空格,...
  • 要是输入的是不带空格的字符串用next()、nextLine()都可以, 但是以防nextLine()吃回车,用next()比较好; 如果输入的是带空格的字符串,只能用nextLine(), 每句话都要注意加上in.nextLine(); 语句吃掉...
  • //接收用户输入的字符串 System.out.println("请输入字符串:"); String string = scanner.nextLine().trim();//nextline输入的整行字符串,以回车键结束,.trim()是用于删除字符串头尾空格的方法 ...
  • 代码如下: from tkinter import * import requests ... content = entry1.get().strip()#去除字符串开头或者结尾的空格 #entry是Tkinter用来接收字符串输入的控件 url = 'http://fanyi.youdao...
  • 输入字符串的字符的倒置,在这个程序中,我觉得自己...这道题的三个重点:1、系统对于键盘输入的字符串的识别,在下面的正确代码中,当执行while循环,输入字符串,字符串就被存入数组中,那他是怎么识别空格的呢...
  • hdu 1986

    2013-08-06 13:02:38
    要注意 怎么蛇形填数,还有 如何输入带空格的字符串。 下面看代码: #include #include #include #include #include using namespace std; const char biao[27][6]={{"00000"},{"00001"},{"0
  • 在写Scanner接收字符串时忘了怎么写了,我觉得接收int是nextInt,接收字符串时难不成是nextString,于是我就写了上去,提示没有这个方法,于是我就去百度,看到了next后也没仔细看就写了上去,到了老师检查时,老师...
  • 2021-03-17

    2021-03-17 10:07:09
    怎么读入带空格的字符串数组 cin>>m; string s; getchar();//吸收整数后的换行符 while(m--) { getline(cin,s);//getline输入,换行,再getline输入,中间的换行符不用吸收 stringstream ss(s);...
  • System.out.println("请输入一行字符串,可带空格,以enter结束: "); String b = in.next(); System.out.println("用next获取您的输入是: " + b); //键盘输入aa bb cc,打印输出aa,然后报错 /...
  • 1、这个岗位要求有编程基础,所以先问的编程题,写完后要讲一下思路,输入一个带空格的字符串 ”abc aba cba cbc mcm opp iuy”,找出字母对称的单词:aba cbc mcm 2、问平时做接口测试是怎么做的,我说是用 java...
  • 快捷键:能不能全选,部分选择,复制剪切粘贴是否可用,粘贴超过最大长度的字符串怎么显示,table键盘是否可用; 兼容性测试 根据产品的用户分布,手机品牌,分辨率,topN的机型; 根据产品在不同浏览器上
  • 又忘了C++怎么输入带空格的一行字符串了..... 特地写下来,以免又忘了。(注意,cin后要加getchar(),不然后面的getline()会直接读取'\n') #include using namespace std; int main() { char s[27] = ...
  • 我们输入一个整数然后不断取各个位置进行加和操作,得到和用汉字输出,中间带空格。 问题分析 这个问题不要被表面要求蒙蔽了,我们如果真的输入一个整数然后不断求各位数字那可太麻烦了。所以我们要取个巧,...
  • 如果从行首匹配,可以用“^”来实现,不过 EditPlus 有另一个功能可以很简单的删除行首的字符串 a. 选择要操作的行 b. 编辑-格式-删除行注释 c. 在弹出对话框里面输入要清除的行首字符,确定 【4】正则表达式应用...
  • 8.5.5 显示日期一部分的字符串值 237 8.5.6 使用DATEPART显示日期一部分的整数值 237 8.5.7 使用YEAR、MONTH和DAY显示日期一部分的整数值 238 8.6 类型转换 238 8.6.1 转换数据类型 238 8.6.2 将日期...

空空如也

空空如也

1 2 3 4
收藏数 65
精华内容 26
关键字:

怎么输入带空格的字符串