『壹』 c语言,scanf 输入字符问题

屏幕上输入的字符,会暂存到缓存。不信,你可以一直按着键盘,不多会,你就会听到系统发出嘟嘟的报警声,说明缓冲区已经满了。
scanf()函数只是从当前缓冲区取一个相应的字符;其中缓冲区的最后一个字符为'\n';
按你说的,可以用循环,接收字符同样可以用getchar()函数。
char ch;
while(1){
scanf("%c",&ch);
if(ch=='\n') break; /* 当输入回车时,结束 */
/* 对ch做相应处理 */
}

『贰』 c语言关于字符串用scanf输入的问题

如果第一个是输入%s 第二个输入一个%c
那么由于 回车'键'在Windows系统中用"\n\r"两个字符表示,专所以由于scanf读入的问题只接受一属个以字符就会多余一个,而这个多余的就会被下一个输入字符所接受,所以才未输入就结束了。
这是在两个输入之间加入getchar()即可接受这个多余的字符。或者把输入字符串改为gets(str)。

『叁』 c语言用scanf输入字符串

有了char a[10];,那么复a就是这个数制组的第一个元素的指针,&a就是这个数组的指针;因为一维数组的第一个元素的指针和这个数组的指针是同一个地址,区别是a+1指向a[1],而&a+1就指向a[10]了(这里已越界了)。但&a和a的"值"是相同的,只是类型不同。C调用函数时,实参的类型都会被强制为形参的类型,scanf("%s", &a)或scanf("%s", a)中要求参数是char *型指针,那么&a尽管是char **类型,但被强行转换为char *型了……

『肆』 c语言怎么用scanf输入字符串

c语言用scanf输入字符串:
char s[300];
scanf("%s",s);
这个语句只能输入不包含空格和跳格键的字符串并且以回车符结束输入。

『伍』 c语言scanf 和gets对字符串的输入

?

1234567891011121314151617#include<stdio.h>void main(){char str[100];char* p=NULL;printf("请输入一段英文文章: ");gets(str);// scanf("%s",str);p=str;for(;*p!='';p++){if(*p=='H'){printf("%s ",p);}}}

在这段简单的程序中,会出现的是问题在gets(str);处。

当用scanf("%s",str);来获取这段英文文字的时候,输出会在第一个空格的地方程序结束,如下图:

第一次输入Hello world!后,字符串Hello world!都会被读到输入缓冲区中,而scanf()函数取数据是遇到回车、空格、TAB就会停止,也就是第一个scanf()会取出"Hello",而"world!"还在缓冲区中,这样第二个scanf会直接取出这些数据,而不会等待从终端输入。

用scanf来读取一个字符串时,字符串中是不可以出现空格的,一旦出现空格,后面的数据就会舍弃残留在缓冲区中。其实有另外一个函数是可以接受空格的,那就是gets().第一个字符串取了Hello world! 接受了空格符,而没有像上一个程序那样分成了两个字符串,所以如果要读入一个带空格符的字符串时因该用gets(), 而不宜用scanf().

『陆』 C语言scanf,输入字符

你把scanf("%c\n",&c1)里的“\n”去掉就可以了。换行是根在printf里才可内以执容行的。scanf用于存储,

#include "stdio.h"
void main()
{
char c1,c2;
scanf("%c",&c1);
printf("%c,%d\n",c1,c1);
c2=c1+32;
printf("%c,%d\n",c2,c2);
}

『柒』 c语言 如何从键盘输入字符串

c语言从键盘输入字符串的步骤如下:

1.首先我们新建一个dev C++的项目。

『捌』 ★C语言 关于scanf输入字符串的问题

name=%s num=%d 它会按照你的格式来进行接收字符串到 一个内存地址中,但这个地址并不是 你定义的 name[20] 和 num ,而是 stdin 这个结构体中 _base 成员 指向的数据区,这个数据区叫 做 输入缓冲出,同理 还有 输出缓冲区 :stdout._base 。 scanf 会接收 全部信息(是你格式中定义的,如 name= num= 当然还有一个空格)也就是说 这些东西都要输入,把这些信息接收到 stdin._base里面,然后再 比较数据与已经定义的格式 name=%s num=%d 的匹配情况,将相应的值 再分配到 自己定义的缓冲区中。

你的问题 是 输入空格是不是代表字符串结束了?
scanf 里面 一般来说是不接收空格的,但是有例外 ,如 你上面的例子,在格式控制里 有 空格,接收的时候 它就占一个 位置,也就是你按空格的时候 它在之后会和 你定义的格式控制里的空格匹配。

『玖』 C语言用如何用scanf输入带有空格的字符串

要输入带空格的字符串,要用到一个格式字符:%[] --> 一个字符集。

“%[]”的作用是扫描字符集合:

例如:scanf(“%[^ ]”,str);

具体作用是:如果输入的字符属于方括号内字符串中某个字符,那么就提取该字符;如果一经发现不属于就结束提取。该方法会自动加上一个''到已经提取的字符后面。

#include <stdio.h>

int main()

{

char str[81];

printf("Please input a string: ");

scanf("%[^ ]",&str);

printf("The string is: %s ",str);

return 0;

}

(9)c语言字符串输入scanf扩展阅读:

字符串函数应用:

1. 连接运算 concat(s1,s2,s3…sn) 相当于s1+s2+s3+…+sn。

例:concat(‘11’,'aa’)='11aa’。

2. 求子串。 Copy(s,I,I) 从字符串s中截取第I个字符开始后的长度为l的子串。

例:(‘abdag’,2,3)=’bda’。

3. 删除子串。过程 Delete(s,I,l) 从字符串s中删除第I个字符开始后的长度为l的子串。

例:s:=’abcde’;delete(s,2,3);结果s:=’ae’。

4. 插入子串。 过程Insert(s1,s2,I) 把s1插入到s2的第I个位置。

例:s:=abc;insert(‘12’,s,2);结果s:=’a12bc’。

5. 求字符串长度 length(s) 例:length(‘12abc’)=5。

在ASP中 求字符串长度用 len(s)例: len("abc12")=5。

网络-扫描集