C语言进修教程第四章-数组(5)
当前位置:以往代写 > C/C++ 教程 >C语言进修教程第四章-数组(5)
2019-06-13

C语言进修教程第四章-数组(5)

C语言进修教程第四章-数组(5)

用字符串方法赋值比用字符逐个赋值要多占一个字节, 用于存放字符串竣事符号’\0’。上面的数组c在内存中的实际存放环境为: C program\0`\0’是由C编译系统自动加上的。由于回收了`\0’符号,所以在用字符串赋初值时一般无须指定命组的长度, 而由系统自行处理惩罚。在回收字符串方法后,字符数组的输入输出将变得简朴利便。 除了上述用字符串赋初值的步伐外,还可用printf函数和scanf函数一次性输出输入一个字符数组中的字符串, 而不必利用轮回语句逐个地输入输出每个字符。
void main()
{
static char c[]="BASIC\ndBASE";
printf("%s\n",c);
}
留意在本例的printf函数中,利用的名目字符串为“%s”, 暗示输出的是一个字符串。而在输出表列中给出数组名则可。 不能写为: printf("%s",c[]);
void main()
{
char st[15];
printf("input string:\n");
scanf("%s",st);
printf("%s\n",st);
}
本例中由于界说数组长度为15, 因此输入的字符串长度必需小于15,以留出一个字节用于存放字符串竣事符号`\0`。 应该说明的是,对一个字符数组,假如不作初始化赋值,则必需说明数组长度。还应该出格留意的是,当用scanf函数输入字符串时,字符串中不能含有空格,不然将以空格作为串的竣事符。譬喻运行例4.8,当输入的字符串中含有空格时,运行环境为: input string:this is a book this 从输出功效可以看出空格今后的字符都未能输出。 为了制止这种环境, 可多设几个字符数组分段存放含空格的串。措施可改写如下:
Lesson
void main()
{
char st1[6],st2[6],st3[6],st4[6];
printf("input string:\n");
scanf("%s%s%s%s",st1,st2,st3,st4);
printf("%s %s %s %s\n",st1,st2,st3,st4);
}
本措施别离设了四个数组, 输入的一行字符的空格分段别离装入四个数组。然后别离输出这四个数组中的字符串。在前面先容过,scanf的各输入项必需以地点方法呈现,如 &a,&b等。但在例4.8中却是以数组名方法呈现的,这是为什么呢?这是由于在C语言中划定,数组名就代表了该数组的首地点。 整个数组是以首地点开头的一块持续的内存单位。如有字符数组char c[10],在内存可暗示如图4.2。设数组c的首地点为2000,也就是说c[0]单位地点为2000。则数组名c就代表这个首地点。因此在c前面不能再加地点运算符&。如写作scanf("%s",&c);则是错误的。 在执行函数printf("%s",c) 时,按数组名c找到首地点,然后逐个输出数组中各个字符直到碰着字符串终止符号’\0’为止。

    关键字:

在线提交作业