如你对其他C语言知识感兴趣,请考虑阅读我的专栏:
C语言学习【专栏】
须知
本文仅作学习笔记使用,仅在CSDN网站发布,如果在其他网站发现,均为侵权行为,请举报。作者:小王在努力。 参考资料:小甲鱼-带你学c带你飞
字符串处理函数
1.字符串
- 用字符常量来表示字符串:“DanDan”
- 注意:字符常量结尾也有一个\0
printf("DanDan的长度为:%d", sizeof("DanDan"));
- 用字符数组来表示字符串:char stl[10] = “DanDan”;
- 注意:在用字符数组表示字符串的时候需要在后面加上表示字符串结束的\0,在单个字符赋值的时候要记得加上,在一次性赋值字符串的时候系统会自动在结尾加上\0
char str1[] = { "DanDan" };
char str2[] = { 'D','a','n','D','a','n','\0' };
char str3[] = "DanDan";
printf("str1的长度为:%d\n", sizeof(str1));
printf("str2的长度为:%d\n", sizeof(str2));
printf("str3的长度为:%d", sizeof(str3));
2.字符串处理函数
- 使用库函数的原因:对于程序员来说,库是最重要的工具之一,可以避免重新造轮子
1.strlen函数
- strlen函数:获取字符串的长度。区别于sizeof,strlen求的是length,sizeof求的是length+1
char s[] = "DanDan";
printf("sizeof DanDan = %d\n", sizeof(s));
printf("strlen DanDan = %d", strlen(s));
2.strcpy和strncpy
char str1[] = "Original String";
char str2[] = "New String";
char str3[100];
strcpy(str1, str2);
strcpy(str3, "DanDan");
printf("str1:%s\n", str1);
printf("str2:%s\n", str2);
printf("str3:%s\n", str3);
- 注意:此函数要求前面接受的字符串长度要大于后面被复制字符串的长度。在此个案例中,字符串拷贝函数将New String\0全部给拷贝过来了,所以接受的字符串也变小了。
- strncpy函数:限制性字符串拷贝函数
char str2[] = "To be or not to be";
char str1[100];
strncpy(str1, str2, 5);
str1[5] = '\0';
printf("str1:%s", str1);
3.连接字符串
- strcat函数:将一个字符串连接到另一个字符串的结尾
char str1[100] = "DanDan";
char str2[] = " is my name";
strcat(str1, str2);
printf("str: %s", str1);
4.比较字符串
- strcmp函数:以此比较每个字母的ASCII值,前面大的返回1
char str1[] = "DanDan";
char str2[] = "DanDander";
int c = strcmp(str1, str2);
printf("str: %d", c);
二维数组
1.定义
- 类型 数组名[常量表达式][常量表达式]
- 注意越界问题
2.二维数组的初始化
int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
printf("%d",a[i][j]);
}
printf("\n");
}
int a[3][4] = { {1,2,3,4},{5,6,7,8},{9,10,11,12} };
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
printf("%d",a[i][j]);
}
printf("\n");
}
int a[3][4] = { {1},{5},{9} };
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
- 如果希望将二维数组初始化为0,仅需在大括号内写一个0即可
int a[3][4] = { 0 };
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
int a[3][4];
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
int a[3][4] = {[0][0] = 1, [1][1] = 2, [2][2] = 3};
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
int a[][4] = {[0][0] = 1, [1][1] = 2, [2][2] = 3};
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
|