c语言中char类型数组的输出问题–输出时为何需要&符?
在C语言中数组的名字即数组的起始地址,也是数组第一个元素的地址。因此,假设有一个char类型的数组a表示成如下代码:
char a[20];
那么a表示字符数组的起始地址,它和a[0]是一个意思。
使用printf()输出字符数组a的内容:
printf(“%s\n”, a);
就等同于printf(“%s\n”, a[0]);
输出的时候用:
int i = 0;
for (i=0; i10; i++) {
printf(“a[%d]=%c\n”, i, a[i]);
}
防止缓冲区溢出可以用这样的:
fgets(a, sizeof(a), stdin);
a[strlen(a) – 1] = ‘\0’;
扩展资料:
如果在定义字符数组时不进行初始化,则数组中各元素的值是不可预料的。如果花括号中提供的初值个数(即字符个数)大于数组长度,则出现语法错误。如果初值个数小于数组长度,则只将这些字符赋给数组中前面那些元素,其余的元素自动定为空字符(即’\0’)。
如果提供的初值个数与预定的数组长度相同,在定义时可以省略数组长度,系统会自动根据初值个数确定数组长度。
参考资料来源:百度百科-字符数组
C语言char型输入输出问题
#include stdio.h
#include conio.h
#include string.h
int main(void)
{
int a, b, c;
char x, y, z;
scanf(“%d%d%d”, a, b, c);
printf(“%d%d%d\n”, a, b, c);
scanf(“\n%c%c%c”, x, y, z);////这样之后看看,,,,,因为在输入流中”\n”被按照字符读入了。
printf(“%c %c %c\n”, x, y, z);
getch();
return 0;
}
c语言字符串数组怎么输入和输出呢
在C语言中,有两个函数可以在控制台(显示器)上输出字符串,它们分别是:
puts():输出字符串并自动换行,该函数只能输出字符串。
printf():通过格式控制符%s输出字符串,不能自动换行。除了字符串,printf() 还能输出其他类型的数据。
这两个函数相信大家已经非常熟悉了,这里不妨再演示一下,请看下面的代码:
#include stdio.h
int main(){
char str[] = “”;
printf(“%s\n”, str); //通过字符串名字输出
printf(“%s\n”, “”); //直接输出
puts(str); //通过字符串名字输出
puts(“”); //直接输出
return 0;
}
运行结果:
注意,输出字符串时只需要给出名字,不能带后边的[ ],例如,下面的两种写法都是错误的:
printf(“%s\n”, str[]);
puts(str[10]);
扩展资料:
由数字、字母、下划线组成的一串字符。一般记为 s=“a1a2···an”(n=0)。它是编程语言中表示文本的数据类型。在程序设计中,字符串(string)为符号或数值的一个连续序列,如符号串(一串字符)或二进制数字串(一串二进制数字)。
字符串在存储上类似字符数组,它每一位单个元素都是能提取的,字符串的零位是它的长度,如s[0]=10,这提供给我们很多方便,例如高精度运算时每一位都能转化为数字存入数组。
参考资料来源:百度百科-字符串
C语言中,如何将一个数组中的数值转换成字符串输出?
1、首先写上注释内容,如下图所示。
2、然后写上数据类型(char)+字符串名称,如下图所示。
3、接下来需要在=后面写上字符串的内容,如下图所示。
4、接下来需要将字符串的内容打印出来,如下图所示。
5、接下来需要点击顶部的编译,如下图所示。
6、接下来需要点击运行。
7、这时候就可以看到刚才被定义的字符串被输出来了。
c语言如何一次性输出整个数组
对于字符数组可以一次性输出整个数组中的字符,但是对于数值类型的数组,只能利用循环进行逐个输出了。
下面举例说明如下:
char a[] = “abcd”; // 定义一个字符类型的数组,并进行初始化
int b[]={2, 3, 4, 1, 9} // 定义一个int型的数组,并进行初始化;
int i;
printf(“%s”, a); // 一次性输出整个字符数组中的所有字符
for(i=0; i5; i++) // 利用for循环对int数组中的数字进行逐个输出
printf(“%d “, b[i]);