精华内容
下载资源
问答
  • scanf输入字符串遇到空格

    万次阅读 多人点赞 2019-06-02 12:34:49
    scanf输入字符串含有空格的字符串,例如:“I love you!”)时,总是在空格处停止扫描。我们用scanf("%s",str);输入 “I love you!” 字符串后,str输出却只有 “I” ,这并不是我们想要的。这是因为scanf扫描到 ...

    使用scanf时对空格处理?

    问题描述

    scanf输入字符串(含有空格的字符串,例如:“I love you!”)时,总是在空格处停止扫描。我们用scanf("%s",str);输入 “I love you!” 字符串后,str输出却只有 “I” ,这并不是我们想要的。这是因为scanf扫描到 “I” 后面的空格,就认为对str的扫描结束(即空格没有被扫描),并舍弃后面的" love you!",只得到了 “I” 。

    解决办法

    在这里给出了两种解决办法,可以让空格也被扫描到str里。

    1. gets()函数 ,用gets()替代scanf();
      gets可以无限读取字符串,不会判断上限,以回车结束读取。其用法为gets(s),其中s为字符串变量(字符串数组名或字符串指针)。简单的理解就是读入一串字符(遇到回车结束),存到s中。
    #include<stdio.h>
    int main()
    {
       char str[50];
       gets(str);
       printf("%s\n",str);
       return 0;
    }
    
    1. scanf("%[^\n]",str) ,遇到"\n"结束
      '^'含有非的意思
      “%[^\n]“即遇到\n结束。
      如果使用”%[^v]”,那我们输入 “I love you!” ,输出的就是 “I lo” ,现在能懂这个非的意思了吧…
    #include<stdio.h>
    int main()
    {
    	char str[50];
    	scanf("%[^\n]",str);//"%[^v]"
    	printf("%s\n",str);
    	return 0;
    }
    

    总结

    简单的给出了两种我平时使用scanf时遇到空格的处理方法,希望能对你也有所帮助。

    展开全文
  • c语言输入字符串空格怎么办

    千次阅读 2020-05-14 14:07:08
    printf("输入一段字符串:"); fgets(str,50,stdin); 采用fgets输入可以识别空格,如输入hello world,输出hello world 若采用scanf,空格就相当于一个结束符,识别不了 如输入hello world,只能输出hello 只不过用...
    char str[50];
    printf("输入一段字符串:");
    fgets(str,50,stdin);
    

    采用fgets输入可以识别空格,如输入hello world,输出hello world

    若采用scanf,空格就相当于一个结束符,识别不了
    如输入hello world,只能输出hello

    不管用fgets输入还是scanf输入结尾都会有’\0’。

    strlen()函数求出的字符串长度为有效长度,既不包含字符串末尾结束符 ‘\0’;
    sizeof()操作符求出的长度包含字符串末尾的结束符 ‘\0’;
    length()函数求出的字符串长度不包含字符串末尾结束符’\0’。

    strlen函数用之前需要先对字符数组定义,例如char str[]={“hello world”};或者char str[]={‘h’,‘e’,‘l’,‘l’,‘o’,’ ‘,‘w’,‘o’,‘r’,‘l’,‘d’,’\0’};

    展开全文
  • scanf输入字符串以及空格问题

    千次阅读 2020-02-05 18:53:09
    输入 输入字符串可选择使用数组,并在数组后加一个界限,如以下例题就在str[10]右面加上界限10. 注意数组界限为10,最多...scanf输入字符串的时候不会接收Space空格,回车Enter,Tab键,则认为输入结束。scanf函...

    输入

    输入字符串可选择使用数组,并在数组后加一个界限,如以下例题就在str[10]右面加上界限10.
    在这里插入图片描述
    注意数组界限为10,最多输入九个字符,留下一个为’/0’的位置

    空格问题

    常见问题
    scanf输入字符串时,总是在字符处停止扫描,如输入‘I am a student’,输出只为‘I’
    原因
    scanf输入字符串的时候不会接收Space空格,回车Enter,Tab键,则认为输入结束。scanf函数直接从输入缓冲区中取数据,而并非从键盘(也就是终端)缓冲区读取。

    解决方法

    方法一
    输入多个字符串,中间空格隔开
    在这里插入图片描述
    方法二

    用get_s()替代scanf_s();
    gets可以无限读取字符串,不会判断上限,以回车结束读取。其用法为get_s(s,N-1),其中s为字符串变量(字符串数组名或字符串指针),N为数组个数。
    在这里插入图片描述

    展开全文
  • scanf输入字符串遇到空格问题

    千次阅读 2020-04-18 17:04:03
    今天scanf输入字符串时候,比如输入 Today is 2008/8/8 经过调试发现,遇到空格被scanf认为输入完成了,实际上这个字符串输入的是Today 经过查找问题,解决方法有两个:(代码有注释 ) #include <stdio.h>...

    今天scanf输入字符串时候,比如输入 Today is 2008/8/8

    经过调试发现,遇到空格被scanf认为输入完成了,实际上这个字符串输入的是Today

    经过查找问题,解决方法有两个:(代码有注释 )

    #include <stdio.h>
    #include <string.h>
    int main()
    {
        int upper=0,lower=0,digit=0,space=0,other=0,i=0;
        char *p,s[20];
        printf("input string: \n");
        //scanf("%s",s);   这种方法输入字符串有空格不行的 
    //    gets(s);             解决方法之一 
      scanf("%[^\n]",s);     //解决方法之二 
        p=s;
        while(*p!='\0')
        {
            if(('A'<=*p)&&(*p<='Z'))
            upper++;
            else if(('a'<=*p)&&(*p<='z'))
            lower++;
            else if(*p==' ')
            space++;
            else if((*p<='9')&&(*p>='0'))
            digit++;
            else
            other++;
            p++;
        }
        printf("upper case:%d    lower case:%d",upper,lower);
        printf("      space:%d    digit:%d    other:%d\n",space,digit,other);
        return 0;
    }

    展开全文
  • next() 和 nextLine() 都可以输入一个字符串。 next() next() 不能输入“_”(空格),它以其他有效字符开始,以空格或回车结束。 例如: Scanner in = new Scanner (System.in); String s = in.next(); 在以上程序...
  • 不能接收带空格字符串输入,虽然它的指定长度是10, 但是遇到空格时即使没有满10个字符它也自动结束输入了。所以:1.用 gets() 可以读取空格, 直到回车才会结束输入char str[80];gets(str); //可以读取空格, ...
  • 输入一串字符,去掉字符中的空格后输出中间没有空格字符串 代码如下 import java.util.Scanner; public class StringUtil{ public static void main(String[] args){ Scanner in=new Scanner(System.in); ...
  • #include"string.h" #include <stdlib.h> int main(){ int i=0,j=1; char *str; str=(char*)malloc(10*sizeof(char)); while((str[i]=getchar())!='\n'){ i++; } str[i]='\0';... putchar(*...
  • C++ 字符串空格

    千次阅读 2019-05-12 17:19:00
    给定一个字符串,在字符串的每个字符之间都加一个空格。 输出修改后的新字符串输入格式 共一行,包含一个字符串。 输出格式 输出增加空格后的字符串。 数据范围 1≤字符串长度≤1001≤字符串长度≤100 ...
  • 最近事情有点多,问别人要了一...请输入5个字符串字符串可以包含空格。 输出格式: 请输出排序后的字符串,每个字符串单独占一行。 #include "stdio.h" #include "string.h" int main( ) { char ss[5][100],tt[100]
  • 输入字符串时输入空格

    千次阅读 2012-03-17 15:10:29
    1.最容易的,将一个字符串分为一个一个字符输入  char s[100];  int i=0;  while(scanf("%c",&s[i]),s[i]!='\n')i++;  s[i]='\0'; //遇到换行停止输入,并且将换行替换为\0...
  • # 在字符串末尾加上空格 a=a+' ' # 确定a的长度 b = len(a) # 定义一个空的列表以备将截取的子字符串正序存入 c = [] d = 0 # 定义空字符串作为过渡,将子字符串暂时存入字符串中(方便书写) e=...
  • 输入字符串遇到换行或空格结束输出 char a[100],c; int i; i = 0; while(scanf("%c",&c) && c != ' ') { a[i] = c; i++; }
  • 在项目中需要验证输入字符串是否为空,包括空格,不太喜欢使用正则,所以就想到了js的indexOf函数,indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置,如果要检索的字符串值没有出现,则该方法...
  • C++如何输入空格字符串

    万次阅读 多人点赞 2018-10-09 15:38:14
    C++如何输入空格字符串 1、scanf函数(包含头文件#include &lt;stdio.h&gt;) scanf函数一般格式为scanf(“%s”,st),但scanf默认回车和空格输入不同组之间的间隔和结束符号,所以输入空格,tab...
  • 从键盘任意输入一个字符串(字符串可以有空格), 在给定的一组字符串中寻找该输入字符串, 若找到,则打印该字符串,否则打印"Not find!"。 对应标号注释在下面 #include <string.h> #include <stdio.h>...
  • C/C++如何输入包含空格字符串

    万次阅读 2017-03-01 14:12:55
    //输入字符串  cout  但我们会发现如果我们输入了还有空格的字符串,s里读入的字符串遇到空格,回车,tab都会结束,比如我们输入123 888,但实际输入到s里的只是123。如果想要输入s含有空格tab,可以
  • 输入输出含有空格字符串 代码: #include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int main() { char a[1010]; scanf("%[^\n]",a); printf("%s\n",a); ...
  • c++中如何输入含有空格字符串

    千次阅读 2019-09-11 15:41:19
    使用cin输入指定字符串的时,如果该字符串中不包含空格键的话,是不会有什么问题的,但是如果包含空格键的话,那就不行了。 对于这种情况的话,该如何解决呢? 这时候就得用到cin.get()和cin.getline() 一、...
  • 输入空格字符串 需要用到 getline(cin,str);具体在代码中看 2:上码 #include<bits/stdc++.h> using namespace std; int main(){ vector<string>v1; for( int i = 0; i < 2; i++ ) { ...
  • 本关任务:文本匹配的时候经常会因为空格个数的不同而匹配失败,现在要求你编写程序对输入字符串进行处理,去掉首尾的空格。 例如:输入字符串是“ abcd ”,去掉首尾空格字符串变为“abcd”。 编程要求 在...
  • 输入输出格式: 输入:%s 输出:%s\n 输入:多个字符串空格分隔 输出:排序好的字符串,每行一个字符串,末尾有空行。 输入输出样例: 输入: diankuang liuxu sui fengwu qingbo taohua zhu shuiliu 输出: ...
  • 编写程序,输入任意一个含有空格字符串(至少10个字符),删除指定字符后输出该字符串。例如,输入“jiangsu123”和删除位置5,则输出“jiansu123”。
  • 方法1: string str; getline(cin,str); cout<<str; 方法2: string str; char c; while((c = cin.get() != '\n)) { str = str + c; }
  • 字符串一直是一个重点加难点,很多笔试面试都会涉及,带空格字符串更是十分常见,现在对字符串输入问题进行一下总结。 C++用cin输入的时候会忽略空格以后的字符,比如 char a[100]; cin>>a; C++用cin输入的...
  • 编写C/C++程序时如何输入包含空格字符串

    万次阅读 多人点赞 2018-03-03 21:06:02
    1.C语言中,可以用gets函数来接收输入字符串包含空格)。 格式:gets(字符数组名); 功能:gets函数用于将输入字符串内容存放到指定的字符数组中,输入结尾的换行符’\n’被换成’\0’存储在该数组中。 举例...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 284,432
精华内容 113,772
关键字:

当用户输入的字符串含有空格