输入一个由5个字符组成的单词,将其内容颠倒过来
#include<stdio.h>
int main()
{
char ch[5];
int i,j,k;
for(i=0;i<5;i++)
{
ch[i]=getchar();
}
for(i=0,j=4;i<j;i++,j--)
{
k=ch[i];
ch[i]=ch[j];
ch[j]=k;
}
for(i=0;i<5;i++)
{
printf("%c",ch[i]);
}
return 0;
}
编写程序,用于合并两个已知的数组。
#include<stdio.h>
int main()
{
//char ch1[]={'g','o','o','d',' '};
char ch1[]={"good"};
char ch2[]={'l','u','c','k','y'};
char ch3[10];
int i;
for(i=0;i<5;i++)
{
ch3[i]=ch1[i];
}
for(i=0;i<5;i++)
{
ch3[5+i]=ch2[i];
}
for(i=0;i<10;i++)
{
printf("%c",ch3[i]);
}
printf("\n");
return 0;
}
char ch1[]={'g','o','o','d'};
char ch1[]={"good"};
这两个字符数组是不一样的,虽然输出的结果一样,但是第一个字符数组长度为4,第二个长度为5,因为长度为5的是用字符串作为初值,字符数组的长度是字符串长度加上结束符。
当字符数组中存储的字符不是以’\0’结束时,只能像普通数组那样,用格式符”%c”一个元素一个元素的处理
例如:
char ch[5];
int i;
for(i=0;i<5;i++)
{
scanf("%c",&ch[i]);
}
for(i=0;i<5;i++)
{
printf("%c",ch[i]);
}
如果字符数组中存储的字符以’\0’结束的,也可以像普通数组那样,一个元素一个元素的处理。
char ch[]="hello";
int i;
for(i=0;ch[i]!='\0';i++)
{
printf("%c",ch[i]);
}
当用字符数组处理字符串时,可以用”%s”格式字符配合,完成字符的输入输出。
输出字符串:
char ch[]="I love china";
printf("%s",ch);
1、在使用scanf函数输入字符串时,“地址”部分应该直接写字符数组的名字,而不是取地址运算符&,在C语言中,数组名字代表该数组的起始地址。
2、在输出字符串时,输出项也为数组名,不能是数组元素。
3、利用格式符”%s”输入的字符串,以“空格”“tab”间隔多个字符,“回车”结束输入。
4、当字符数组长度大于字符串实际长度时,也只输出到’\0’结束。
5、如果字符数组中包含多个’\0’,遇到第一个’\0’时,输出结束。
例如:
char ch[]="hello\0handsome";
printf("%s",ch);
输出结果为:hello
6、scanf函数“%s”格式输入一个字符串时,函数中输入项用数组名,并且该数组已定义,而且输入字符串的长度应该小于数组长度。
例如:
char ch[10];
scanf("%s",ch);
数组长度为10,最多输入9个字符。