目录
1.常见各字符串的长度比较
void main()
{
char *str1 = "abcxyz";
printf("%d\n", sizeof(str1)); //4 定义为指针大小为4
printf("%d\n", strlen(str1)); //
}
char str1[10];
void main()
{
printf("%d\n", sizeof(str1)); //10 大小为10
printf("%d\n", strlen(str1)); //0 全局变量 没有赋值,全为0,即为 ‘\0' 所以为0
}
void main()
{
char str1[10];
printf("%d\n", sizeof(str1)); //10
printf("%d\n", strlen(str1)); //? 局部变量,随机值
}
void main()
{
char str1[10] = {'a','b','c','x','y','z'};
printf("%d\n", sizeof(str1)); //10
printf("%d\n", strlen(str1)); //6 后面没赋值所以均为0
}
void main()
{
char str1[] = {'a','b','c','x','y','z'};
printf("%d\n", sizeof(str1)); //6 大小即为字符串大小
printf("%d\n", strlen(str1)); //6
}
void main()
{
char str1[] = "abcxyz";
printf("%d\n", sizeof(str1)); //7 多一个\0
printf("%d\n", strlen(str1)); //6
}
void main()
{
char str1[10] = "abcxyz";
printf("%d\n", sizeof(str1)); //10
printf("%d\n", strlen(str1)); //6
}
2.strlen (使用时均要加头文件 #include<string.h>)
求字符串长度,不包含 \0
#include <stdio.h>
#include<string.h>
int main()
{
char str[32] = { 0 };
int len = 0;
gets(str);
len = strlen(str);
printf("len = %d\n", len);
return 0;
}
常用操作,用它来找字符串最后一个元素:
str[5] ={abcde};
str(strlen(str) - 1) = str[ 4] 为 e
3.strcpy
字符串拷贝
把str内的字符串赋值给 mtr
#include <stdio.h>
#include<string.h>
int main()
{
char str[32] = { 0 };
char mtr[32] = {"rrfv" };
gets(str);
strcpy(mtr, str);
printf("mtr = %s\n",mtr);
return 0;
}
3.Strcat
字符串拼接
把str 接在 mtr 后面
#include <stdio.h>
#include<string.h>
int main()
{
char str[32] = { 0 };
char mtr[32] = {"rrfv" };
gets(str);
strcat(mtr, str);
printf("mtr = %s\n",mtr);
return 0;
}
4.strmpy
字符串比较
依次比较字符串的ASCII值,全部相同为0 前者大为1, 后者大输出0
#include <stdio.h>
#include<string.h>
int main()
{
char str[32] = { "efeff" };
char mtr[32] = {"rrfv" };
int ret = 0;
ret = strcmp(mtr, str);
printf(" %d\n",ret);
return 0;
}