字符数组
字符数组即char型数组,是存放char型数据的容器。
char 数组名 [数组容量]
要把一个数组赋值为’a’,‘z’,实现代码如下:
#define MAX_CHAR 26
...
int i = 0;
char array_ch[MAX_CHAR];
for(i = 0;i < MAX_CHAR; ++i){
array_ch[i] = 'a' + 1;
}
int型也可以来存储字符,代码如下:
#include <stdio.h>
#define ARRAY_LENGTH 9
int main(void){
char array_ch[ARRAY_LENGTH];
int array_int[ARRAY_LENGTH];
int i = 0;
for(i = 0; i < ARRAY_LENGTH; ++i){
array_ch[i] = 'A' + 1;
arrat_int = 'a' + 1;
printf("Output the elements in array_ch:\n");
for(i = 0;i < ARRAY_LENGTH; ++i){
printf("array_ch[%d] = [%c]\t",i,array_ch[i]);
if(i % 3 == 2)
printf("\n");
}
printf("Output the elements in array_int:\n");
for(i = 0; i < ARRAY_LENGTH; ++i){
printf("array_int[%d] = [%c]",i,array_int[i]);
if(i % 3 == 2)
printf("\n");
}
printf("\nsizeof(array_ch) = %d\n",sizeof(array_ch)); /*输出char型数组变量的字长*/
printf("\nsizeof(array_int) = %d\n",sizeof(array_int)); /*输出int型数组变量的字长*/
return 0;
}
二维字符数组的定义:
char 数组名[容量1] [容量2];
例如:
char q[3] [4];
变量q被定义为字符数组,并占用34的数组空间。
二维数组的赋值:
q[2][3] = ‘a’;
q[1][1] = ‘b’;
其中,二维数组的第二行第三列元素被设定为’a’,第一行第一列元素被设定为’b’。
二位字符数组的初始化:
char q[2][2] = {{‘a’,‘b’},{‘a’,‘b’}};
char p[4][4] = {
{‘a’,‘b’,‘c’},
{‘e’,‘f’,},
{‘g’}.
{ };
char w[ ] [ ] = {
{‘a’,‘b’,‘o’,‘u’,‘t’},
{’!’}};
最后一个:w的容量为25,二行五列字符数组。
字符数组示例:
反转单词,方法一示例代码如下:
#include <stdio.h>
#define MAX_STRING 7
int main(void){
char str[MAX_STRING] = {'G','o','o','d','b','y','e'};
char str_tem[MAX_STRING] = {0};
int i = 0;
int j = 0;
printf("Original String:\n");
for(i = 0;i < MAX_STRING; ++i){
printf("%c",str[i]);
printf("\n");
i = 0;
j = MAX_STRING - 1;
while(i < MAX_STRING){
str_tmp[j] = str[i];
++i;
--j;
}
for(i = 0;i < MAX_STRING; ++i){
str[i] = str_tmp[i];
printf("Final String:\n");
for(i = 0;i < MAX_STRING; ++i){
printf("%c",str[i]);
printf("\n");
return 0;
}
方法二:
#include <stdio.h>
#define MAX_STRING 7
int main(void){
char str[MAX_STRING] = {'G','o','o','d','b','y','e'};
int start = 0;
int end = 0;
char tmp = 0;
printf("Original String :\n");
for(start = 0; start < MAX_STRING; ++start){
printf("%c",str[MAX_STRING]);
printf("\n");
start = 0;
end = MAX_STRING - 1;
while(start < end){
tmp = str[start];
str[start] = str[end];
str[end] = tmp;
++start;
--end;
}
printf("Final String:\n");
for(start = 0; start < MAX_STRING; ++start){
printf("%c",str[start]);
printf("\n");
return 0;
}
字符串变量:
字符串变量在内存中以一维数组形式存储。