精华内容
下载资源
问答
  • scanf获取一行字符串包括空格的以及C语言函数 其内容为 #include int main() {  char str[1024];  scanf("%[^\n]", &str);  ...  return 0; } 说明: 在scanf函数, 可以使用%c来读取一个...

    原文链接:http://wangqingyun84.blog.163.com/blog/static/79083617201262691716249/

    用scanf获取一行字符串包括空格的以及C语言函数

    其内容为

    #include<stdio.h>
    int main()
    {
          char str[1024];
          scanf("%[^\n]", &str);
          ...
          return 0;
    }

    说明:
    在scanf函数中, 可以使用%c来读取一个字符, 使用%s读取一个字符串, 但是读取字符串时不忽略空格,读字符串时忽略开始的空格,并且读到空格为止,因此只能读取一个单词,而不是整行字符串,因此一般使用fgets来读取一个字符串。

    其实scanf函数也可完成这样的功能,而且还更强大。这里主要介绍一个参数,%[ ],这个参数的意义是读入一个字符集合。[ ]是个集合的标志,因此%[ ]特指读入此集合所限定的那些字符,比如%[A-Z]是输入大写字母,一旦遇到不在此集合的字符便停止。如果集合的第一个字符是"^", 这说明读取不在"^" 后面集合的字符,既遇到"^" 后面集合的字符便停止.注意此时读入的字符串是可以含有空格的。

    在这里主要是想说明一点:
          如果要循环的从屏幕上读取一行的话,就要在读取一行后,在用%c读取一个字符,将输入缓冲区中的换行符给读出来。否则的话,在下一次读取一行的时候,第一个就遇到'\n',匹配不成功就直接返回了。

    展开全文
  • 除了在定义字符数组时初始化外,还可以通过scanf从键盘输入字符串。下面写一个程序: # include <stdio.h> int main(void) { char str[10]; //str是string的缩写, 即字符串 printf(“请输入字符串:”); scanf...

    除了在定义字符数组时初始化外,还可以通过scanf从键盘输入字符串。下面写一个程序:

    # include <stdio.h>

    int main(void)
    {
    char str[10]; //str是string的缩写, 即字符串
    printf(“请输入字符串:”);
    scanf("%s", str); /输入参数是已经定义好的“字符数组名”, 不用加&, 因为在C语言中数组名就代表该数组的起始地址/
    printf(“输出结果:%s\n”, str);
    return 0;
    }
    输出结果是:
    请输入字符串:爱你一生一世
    输出结果:爱你一生一世

    用 scanf 给字符数组赋值不同于对数值型数组赋值。前面讲过,给数值型数组赋值时只能用 for 循环一个一个地赋值,不能整体赋值。而给字符数组赋值时可以直接赋值,不需要使用循环。此外从键盘输入后,系统会自动在最后添加结束标志符 ‘\0’。但是用 scanf 输入字符串时有一个地方需要注意:如果输入的字符串中带空格,比如“i love you”,那么就会有一个问题。我们将上面程序运行时输入的字符串改一下:

    #include <stdio.h>

    int main(void)
    {
    char str[10]; //str是string的缩写, 即字符串
    printf(“请输入字符串:”);
    scanf("%s", str); //输入参数是已经定义好的字符数组名
    printf(“输出结果:%s\n”,

    展开全文
  • 使用scanf("%s",str)读取字符串时,会以空白符(空格、Tab等)和换行符为截至标志,如果一行有空格,那么scanf只能读取第一个空格前的字符串。 使用gets(str)读取字符串时,会以换行符为截至标志。也就是说,gets...
    • 使用scanf("%s",str)读取字符串时,会以空白符(空格、Tab等)和换行符为截至标志,如果一行中有空格,那么scanf只能读取第一个空格前的字符串。
    • 使用gets(str)读取字符串时,会以换行符为截至标志。也就是说,gets可以读取包括空格在内的一整行字符串。可以推出,如果一行只有一个换行符(即该行直接“回车”了),那么将得到空字符串(NULL)。

     

    例如,如果要在scanf读取数据组数T之后使用gets来读入字符串,请务必在scanf读取T的语句之后添加一句getchar():

    scanf("%d",&T);
    getchar();
    while(T--)
    {
    gets(string);
    }

    这是为了消除数字T后面的换行符,避免被gets读入换行符。

    展开全文
  • 当不支持gets时,getline又比较慢,可以使用scarf("%[^\n]s", str);来读入以换行表示读完的字符串,其中[^char]表示以char为结束。 转载于:https://www.cnblogs.com/AlphaWA/p/11379939.html...

    当不支持gets时,getline又比较慢,可以使用scarf("%[^\n]s", str);来读入以换行表示读完的字符串,其中[^char]表示以char为结束。

    转载于:https://www.cnblogs.com/AlphaWA/p/11379939.html

    展开全文
  • 用sprintf,scanf实现数字与字符串的转换
  • #define _CRT_SECURE_NO_WARNINGS ... 提示:请使用scanf 函数输入2个字符串str1, str2 ,再计算字符串中子串出现的次数 */ int main03() { char str1[100]; char str2[50]; int m_count = 0; sca.
  • 生活,字符和字符串无处不见。当你输入带空格的一段字符串时,比如:“I love you”。如果你用scanf输入,语句应该是这样的: char str[100]; scanf("%s",str); 而你得到的结果却是 I 由此,我们可以断定,scanf...
  • 字符串的输入是以空格为分割的,如果遇到需要将空格也作为内容读入字符串,则需要用以下格式:scanf("%[^\n]",str);这段语句的作用是str接收输入的字符串,直到碰到回车换行符为止,也就是回车前的内容均接收为str的...
  • void change_p(char str[],int*nn )//输入字符串和地址&p { switch(str[0]) { case 'f':break; case 'b':mid=*nn;*nn=behind;behind=mid;mid=left;left=right;right=mid;break; case 'l':mid=*nn;*nn=...
  • c语言获取用户输入字符串scanf和gets的区别

    万次阅读 多人点赞 2017-05-15 18:49:34
    gets(s)函数与 scanf("%s",&s) 相似,但不完全相同,使用scanf("%s",&s) 函数输入字符串时存在一个问题,就是如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理,但gets()函数将接收输入的整个...
  • scanf输入字符串

    千次阅读 2019-05-26 08:25:59
    #include<stdio.h> #include<string.h> int main(void) { char str[10]; printf("请输入字符串:"); scanf("%s", str); printf("输出结果:%s\n", str); return 0; }
  • 题目:计算字符串最后一个单词的长度,单词以空格隔开。 一行字符串,非空,长度小于5000。 输入描述: 一行字符串,非空,长度小于5000。 输出描述: 整数N,最后一个单词的长度。 ...
  • c语言如果输入带空格的字符串有gets(s) 和scanf("%[^\n]",s)两种方式。如下程序: #include #include int main() { int len=0,i=0,k=0; char s[128];  //scanf("%[^\n]", s); //scanf输入带空格的字符串...
  • scanf输入字符串遇到空格?

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

    千次阅读 2020-05-12 18:24:55
    除了在定义字符数组时初始化外,还可以通过scanf从键盘输入字符串。下面写一个程序: #include <stdio.h> int main(void) { char str[10]; //str是string的缩写, 即字符串 printf("请输入字符串:"); scanf("%...
  • VS2013使用scanf、gets及字符串函数编译报错 error C4996: 'scanf': This function or variable may be unsafe. 的原因及解决方案 一、问题描述 环境:win7系统安装vs2013,新建win32控制台应用程序_空项目,...
  • 目录 一、可以用三种方式解决子串问题:函数strstr、...先举几个例子来说明一下什么样的字符串可以称作子串(区分大小写,假设字符串数组长度为20): 令str1[20]="dou LUO da lu"; 1.str2[20]="da l";是子串; 2.
  • scanf读取含空格的字符串

    万次阅读 多人点赞 2018-07-14 23:44:13
    scanf()函数接收输入数据时,遇以下情况结束一个数据的输入: ...scanf接收包含空格的字符串 #include &amp;amp;lt;stdio.h&amp;amp;gt; int main() { char str[80]; scanf...
  • 背景:想要在c语言...(备注:全文出现的str都表示一个字符串数组,或者char *) 一. 输入单组数据 方法一:使用gets(str)来实现 #include&lt;stdio.h&gt; int main(){ char str[20]; gets(st...
  • 编写一个函数void str_bin(char str1[ ], char str2[ ]), str1、str2是两个有序字符串(其中字符按ASCII码从小到大排序),将str2合并到字符串str1,要求合并后的字符串仍是有序的,允许字符重复。在main函数...
  • scanf 读取字符串

    千次阅读 2017-10-14 09:37:06
    #include int main(void) { freopen("input.txt", "r", stdin); char str[10], str2[10];... scanf("%s", str); scanf("%s", str2); printf("%s: %s\n", str, str2); return 0; } $ cat input.txt U ASXSDX
  • 例题:请补充fun函数,该函数的功能是:先将在字符串str中字符串按 逆序存放在t ,然后把str中的字符按正序连接到t的后面。 例如,str中字符串为abc时,则t字符串应为cbaabc。 请勿改动主函数main与其他...
  • fgets、gets、scanf函数读入字符串比较

    千次阅读 2013-03-28 11:25:57
    首先,说说这个函数的使用方法。...scanf("%s", str);其中fgets函数是安全的,gets和scanf函数都是不安全的。当输入的字符大于等于10时,会数组越界。编译不会保存,甚至运行时也不会保存。但极可能因为对str数组
  • scanf输入字符串以及空格问题

    千次阅读 2020-02-05 18:53:09
    输入字符串可选择使用数组,并在数组后加一个界限,如以下例题就在str[10]右面加上界限10. 注意数组界限为10,最多输入九个字符,留下一个为’/0’的位置 空格问题 常见问题 scanf输入字符串时,总是在字符处停止...
  • 如何使用scanf输入带空格的字符串

    千次阅读 2019-12-23 00:25:45
    学过字符串,我们都知道当输入一串带空格的字符 (通俗的说,就是英语由一个个单词组成的一句话)时,举个例子,比如my name is aeiou 如果你用scanf直接输入的话, 像这样 scanf("%s",str); 结果是这样的...
  • scanf输入含有空格的字符串

    千次阅读 2015-05-01 18:56:11
    1、可以使用scanf的扫描集来 扫描允许的字符串来接收用户输入的数据。如:以下代码#import int main(int argc, const char * argv[]) { @autoreleasepool { char str[100]; scanf("%[A-Z]", str);
  • C语言scanf读取字符串遇到的问题

    千次阅读 2018-10-16 23:50:14
    2 在串中遇到空格时,结束字符串输入 但是你输入的字符串又有很多空格,此时该怎么办呢? 解决办法:使用gets() char str[100]; gets(str); gets()会读取一行,遇到换行符就返回,并不会读取’\n’,而是会把’\n’...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 70,890
精华内容 28,356
关键字:

scanf获取str中的字符串