二维字符数组的初始化一般有以下两种方法:
char a[3][6] = { { 'X', 'i', 'a', 'n'}, { 'M', 'i', 'n','g'}, {'d', 'e'} }; //用字符初始化
char b[3][6] = { "Xian", "ming", "de" }; //用字符串初始化
二维字符数组在初始化时,未提供初值的元素自动取值为‘\0’。
二维数组的输入,可以使用以下两种方法:
int i;
char a[3][6];
方法1:
for (i = 0; i < 3; i++)
scanf("%s", a[i]);
方法2:
for (i = 0; i < 3; i++)
gets(a[i]);
二维字符数组的输出,可以使用以下的3种方法:
方法1:
int n, m;
for (n = 0; n < 3; n++) {
for (m = 0; a[n][m] != '\0'; m++)
printf("%c", a[n][m]);
printf("\n");
方法2:
int n;
for (n = 0; n < 3; n++)
printf("%s\n", a[n]);
方法3:
int n;
for (n = 0; n < 3; n++)
puts(a[n]);
字符串连接函数strcat,调用形式如下:
strcat(字符数组名,字符数组名或字符串常量)
功能:将第2项中的字符串连接到第一项中的字符串尾部。第一项中的字符数组必须定义得足够大,以便容纳连接后的结果。
写一个简单的例子:
#include <stdio.h>
#include <string.h>
int main() {
char a[100] = "iphone", b[5] = "plus";
strcat(a, b);
puts(a);
strcat(a, "max");
puts(a);
return 0;
}
输出结果。
再写一个简单的例子:
#include <stdio.h>
#include <string.h>
int main() {
int i;
char a[16] = "iphone\0plus", b[7] = "change";
strcat(a, b);
puts(a);
return 0;
}
输出结果。
字符串复制函数strcpy,该函数的调用形式如下:
strcpy(字符数组名,字符数组名或字符串常量)
功能:将第2项中的字符串复制到第1项中的字符数组中。第1项中的字符数组必须定义得足够大,以便容纳复制过来的字符串。
写一个简单的例子:
#include <stdio.h>
#include <string.h>
int main() {
int i;
char a[14] = "iphoneplus", b[7] = "change";
puts(a);
strcpy(a, b);
for (i = 0; i < 14; i++) {
if (a[i] == '\0')
printf("空");
else
printf("%c", a[i]);
}
return 0;
}
输出的结果。
字符串比较函数strcmp, 该函数的调用形式如下:
strcmp(字符数组名或字符串常量,字符数组名或字符串常量)
功能:比较两个字符串的大小。
比较规则:两个字符串从左到右逐个字符比较(按ASCII码值比较大小),直到出现不同字符或遇到'\0'为止。
如果第1项=第2项,函数值为0;
如果第1项>第2项,函数值为正整数;
如果第1项<第2项,函数值为负整数。
写一个简单的例子:
#include <stdio.h>
#include <string.h>
int main() {
printf("相等时,数值为%d\n第1项较大时,数值为%d\n第1项较小时,数值为%d", strcmp("abc", "abc"), strcmp("ac", "ab"),
strcmp("a", "ab"));
return 0;
}
输出结果。
测字符串长度函数strlen, 该函数的调用形式如下:
strlen(字符数组名或字符串常量)
功能:测字符串长度。字符串长度是字符串中包含的字符个数(不包括'\0'在内)。
写一个简单的例子:
#include <stdio.h>
#include <string.h>
int main() {
char s1[20] = {"\nxyz\101\0abc"};
printf("测试字符串长度是%d\n", strlen("abc"));
printf("s1的长度是%d", strlen(s1));
return 0;
}
输出结果。
s1数组中,'\n'、'x'、'y'、'z'、'\101' 各是一个字符,遇到'\0'字符串结束,其后的字符不再统计。
大写字母转小写字母函数strlwr, 该函数的调用形式如下:
strlwr(字符数组名)
功能:将字符串中的大写字母转换成小写字母。
小写字母转大写字母函数strupr, 该函数的调用形式如下:
strupr(字符数组名)
功能:将字符串中的小写字母转换成大写字母。
写一个简单的例子:
#include <stdio.h>
#include <string.h>
int main() {
int i;
char s1[15] = "iphone\0plusmax", s2[] = "HEllo", s3[] = "heLLO";
printf("s2原来是%s\n", s2);
strlwr(s2);
printf("s2经过小写转换后是%s\n", s2);
printf("s3原来是%s\n", s3);
strupr(s3);
printf("s3经过大写转换后是%s\n", s3);
for (i = 0; i < 15; i++) {
if (i == 0) {
printf("s1原来是 %c", s1[i]);
continue;
}
if (s1[i] == '\0')
printf("空");
else
printf("%c", s1[i]);
}
strupr(s1);
for (i = 0; i < 15; i++) {
if (i == 0) {
printf("\ns1经过大写转换后是 %c", s1[i]);
continue;
}
if (s1[i] == '\0')
printf("空");
else
printf("%c", s1[i]);
}
return 0;
}
输出结果。