字符数组与字符串
- 一、字符串实际上是使用空字符 '\0' 结尾的一维字符数组。
- 二、字符数组
-
- 三、字符串
-
- 四、字符串的定义
- 如果要构造一个字符串—用指针定义
- 如果要处理一个字符串—用数组定义
- 实例
- 运行结果
- 五、字符串赋值
-
- 六、二维数组与指针数组
-
一、字符串实际上是使用空字符 ‘\0’ 结尾的一维字符数组。
二、字符数组
实例
#include <stdio.h>
int main()
{
char a[] = { 'H','e','l','l','o','!' };
printf("%p\n", a);
printf("%llu\n", sizeof(a) / sizeof(a[0]));
for (int i = 0; i < sizeof(a) / sizeof(a[0]); i++) {
printf("%c", *(a + i));
}
printf("\n");
for (int i = 0; i < sizeof(a) / sizeof(a[0]); i++) {
printf("%c", a[i]);
}
printf("\n");
return 0;
}
运行结果
三、字符串
实例
#include <stdio.h>
int main()
{
char a[] = { 'H','e','l','l','o','!','\0' };
char b[] = { 'H','e','l','l','o','!',0 };
char c[] = { "Hello!" };
char d[] = { 'H','e','l','l','o','!','0' };
printf("%s\n", a);
printf("%s\n", b);
printf("%s\n", c);
printf("%p\n", d);
printf("%llu\n", sizeof(a) / sizeof(a[0]));
for (int i = 0; i < sizeof(a) / sizeof(a[0]); i++) {
printf("%c", *(a + i));
}
printf("\n");
for (int i = 0; i < sizeof(a) / sizeof(a[0]); i++) {
printf("%c", a[i]);
}
printf("\n");
for (int i = 0; i < sizeof(d) / sizeof(d[0]); i++) {
printf("%c", *(d + i));
}
printf("\n");
for (int i = 0; i < sizeof(d) / sizeof(d[0]); i++) {
printf("%c", d[i]);
}
printf("\n");
return 0;
}
运行结果
四、字符串的定义
如果要构造一个字符串—用指针定义
如果要处理一个字符串—用数组定义
实例
#include <stdio.h>
int main()
{
char* a = "Hello!";
char b[] = "Hello!";
b[0]='B';
printf("%s\n", b);
return 0;
}
运行结果
五、字符串赋值
实例
#include <stdio.h>
int main()
{
char a[8]="Hello!";
char* b = a;
char** c = &b;
char* d = b;
printf("%p##\n", a);
printf("%s##\n", a);
printf("%p##\n", b);
printf("%s##\n", b);
printf("%p##\n", *c);
printf("%s##\n", *c);
printf("%p##\n", c);
printf("%s##\n", c);
printf("%p##\n", d);
printf("%s##\n", d);
return 0;
}
运行结果
六、二维数组与指针数组
实例
#include <stdio.h>
int main()
{
char a[][10] = { "Hello!","C","C++" };
printf("%p##\n", a);
printf("%s##\n", *a);
char* b[] = { "Hello!","C","C++" };
printf("%p##\n", b);
printf("%s##\n", *b);
return 0;
}
运行结果
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)