本文作者:叶叶

c语言charscanf(C语言char是什么)

叶叶 2024-09-20 21:31:09 21
c语言charscanf(C语言char是什么)摘要: 3、为什么c语言中char*s;scanf是错的??...

本篇目录:

C语言中char类型的数据输入和输出时怎么控制啊?

1、char类型数据在输入时,用scanf()函数输入时,格式控制串用%c,但由于输入的方式不同,代码要采用不同的语句进行控制。

2、首先打开Microsoft Visual C++软件,单击“文件”菜单-“新建”,新建一个文件,文件名后缀为.c。新建好文件后,输入如下内容。然后我们在{ }之间输入函数的内容,我们先定义变量c1,变量的类型为char,字符型。

c语言charscanf(C语言char是什么)

3、可以用%d,此时输出的不是字符,而是字符对应的ASCII码(十进制)。

4、scanf():通过格式控制符%s输入字符串。除了字符串,scanf()还能输入其他类型的数据。scanf()读取字符串时以空格为分隔,遇到空格就认为当前字符串结束了,所以无法读取含有空格的字符串。

5、在C语言中数组的名字即数组的起始地址,也是数组第一个元素的地址。因此,假设有一个char类型的数组a表示成如下代码:char a[20];那么a表示字符数组的起始地址,它和&a[0]是一个意思。

6、在C语言中,有两个函数可以在控制台(显示器)上输出字符串,它们分别是:puts():输出字符串并自动换行,该函数只能输出字符串。printf():通过格式控制符%s输出字符串,不能自动换行。

c语言charscanf(C语言char是什么)

char对应scanf时加&地址符能否正常run

scanf函数用法不对,应该是:scanf(%c%c, &a, &b);即需要在ab前都加取地址符。且输入的时候要输入ab,不带空格,否则b读入的会是空格。

c语言中,scanf是为变量获得输入值;printf是将变量值输出。输出时,只需要值就行了;而输入时,就是把值赋值给具体的变量时,必须知道变量的地址。所以这时候需要 & 来取变量的地址。

因为字符串变量名在 scanf 语句里 表示指针 (地址)例如:char s[80];scanf(%s,s); --- 这里的s 已是地址。当然,写成 scanf(%s,&s[0] ); 也可以, &s[0] 是地址。

scanf函数第二值必须是地址,这样编译器才知道把你输入的值赋值给谁。int num;scanf(%d,&num);//num是个变量,取地址了,编译器才知道你输入的值该赋值给谁。

c语言charscanf(C语言char是什么)

为什么c语言中char*s;scanf(%s,s)是错的??

因为你没有给指针s指向地址,s就是一个野指针。就好比你定义了一个 int a;*a=2;这是错的。

因为s是指针,所以s才是地址,*s是指向的char类型内容 所以要用scanf(%s,s);不过在用之前先要给s初始化,让其合法,例如让s指向一个字符串数组,不然s是个空指针。

那以后就不能改了,尽管p能指向并读取,但不能改写。(这段是别人说的,详情自己搜索char *a和char a[]的区别)所以用scanf语句会有错误,你可以改成char s[MAXSIZE] ; 这样就能正常的录入了。希望可以帮到你。

This is a string 输入char s[20]; scanf(%s,s);并没有错,但是它只能读入This,因为scanf(%s,...);遇到空格、Tab、回车即视为读取结束。

到此,以上就是小编对于C语言char是什么的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位老师在评论区讨论,给我留言。

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享