【答案】:A 在题目的题干中定义了字符指针变量c,在选项A)中,首先定义字符数组s订,然后再把字符数组str的首地址赋给字符指针变量c。所以选项A)是正确的。在选项B)中,应改成scanf(”%s”,&c);在选项c)中,getchar函数的返回值是用户输入的第一个字符的ASCIl码,如出错返回.l,且将用户...
2。如果你输入的汉字时宽字节(UNICODE),那么它也是占用连个字节,使用short就可以了。3。如果你输入的汉字是多字节(UTF8),那么很不幸,它可能是1~3字节,所以最好使用long类型。char - 1字节 short - 2字节 long - 4字节 贴出你的代码,再来说事。
char *p, str[20]; scanf("%d", &i); scanf("%s", p); scanf("%s", str); printf("i=%d ",i); printf("%s ", p); printf("%s ", str); } (2)scanf函数中是否包含空白/非空白字符导致输入格式的不同 如:scanf("%d,%d",&i,&j); scanf中有,所以输入的格式应该是5,6==...
在C语言中,使用 scanf() 输入字符数组时,应当使用 scanf("%s", a); 的形式。这是因为 a 实际上是一个地址,即数组的第一个元素 a[0] 的地址。这种用法等同于 scanf("%s", &a[0]);。通过这种方式,可以直接读取字符数组中的内容。如果你对这个概念还有疑问,欢迎继续追问。这里需要注意,...
char *p,str[20]; scanf(%s, p); scanf(%s, str); 具体字符串,指针的知识以后再介绍。 (c).可以在格式化字符串中的%各格式化规定符之间加入一个整数,表示任何读操作中的最大位数。 如上例中若规定只能输入10字符给字符串指针p,则第一条scanf()函数语句变为: scanf(%10s, p); 程序运行时一旦输入字符...
char str[100];printf("%d\n",sizeof(str));//答案是100 func(str);} void func(char str[100]){ printf("%d\n",sizeof(str));//答案是4 } 为什么会出现这种情况呢,原因是因为两者有着本质性的区别,第一个sizeof(str)中的str是一个 地址常量,它索引着一段大小为100的内存堆,而...
在c语言中,char a[100];定义的是一个字符数组 gets(a);scanf("%s",a);都可以从键盘直接输入字符串,与回车符结束,但gets(a) 算了字符串结束符'\0',所以实际输入的只有99个字符。而scanf("%s",a);没有。
在C语言中,可以使用字符数组和字符串处理函数来实现将“3456”用“*”输出的功能。具体实现如下:```c include <stdio.h> include <string.h> int main() { char str[20]; // 定义字符数组存储输入的字符串 printf("请输入一个包含数字的字符串:");scanf("%s", str); // 读入字符串...
不对,*p是字符型指针,只能在定义的时候赋值,你用scanf在执行程序的时候给它赋值就错了;字符型数组可以那样,指针不可以