C语言中字符串相关方法使用
概述
本文介绍了字符串的基本操作如strlen、strcat、strcmp、strcpy和字符串与数值转换atoi、atof和atol三种方法。
一、字符串基本操作
1、长度strlen
/**strlen*/
char a[20] = "hello";
//unsigned int c = strlen(a);//1
int c = strlen(a);//2 两种接收方式均可 建议使用第一种
printf("%d",c);
2、追加strcat
/**strcat*/
char a[20] = "hello";
char b[15] = "world!";
strcat(a, b);//helloworld!
//strncat(a, b, 3);//hellowor 参数3:指定字符串b的前三个参数参与追加
printf("%s", a);
3、比较strcmp
/**strcmp*/
char a[20] = "hello";
char b[15] = "world!";
if (strcmp(a, b) == 0) {//相同为0
printf("ok");//相同
}
else {
printf("no");//不同
}
4、拷贝strcpy
/**strcpy*/
char a[20] = "hello";
char b[15] = "world!";
strcpy(a, b);//将b字符串覆盖掉(替换)a字符串 world!
strncpy(a, b, 2);//wollo 参数3:指定字符串b的前两个参数参与追加
printf(a);
二、字符串分割
1、单个字符或字符串分割出子串strchr
/**strchr strstr*/
char a[20] = "hello";
char* b;
//b = strchr(a, 'l');//llo 注意要使用“单引号” 在字符串a中找出指定字符开头的子串
b = strstr(a, "ll");//llo 使用双引号,在字符串a中找到指定字符串开头的子串
printf("%s",b);
2、指定字符分割strtok
/**strtok*/
char a[100] = "114.113.112.111";
char* b;
b = strtok(a, ".");
while (b) {
printf("%s\t", b);
b = strtok(NULL, ".");
}
三、字符串转数值
1、字符串转整型(int)atoi
/**atoi*/
char a[100] = "123";
char b[100] = "200";
int c = 0;
c = atoi(a)+atoi(b);
printf("%d",c);
2、字符串转浮点型(double)atof
/**atof*/
char a[100] = "123";
char b[100] = "200";
double d = atof(a);//%f
printf("%f",d);
3、字符串转长整型(long)atol
/**atol*/
char a[100] = "123";
char b[100] = "200";
long e = atol(a);//%d
printf("%d",e);
四、字符串输入输出
1、gets
/**gets*/
char a[10];
gets(a);
printf("%s", a);
2、puts
/**puts*/
char a[10] = "hello!";
puts(a);//同printf("%s", a);
3、scanf
/**scanf*/
char a[10];
scanf("%s",&a);//注意使用取址符“&”
printf("%s", a);
4、sprintf
/**sprintf*/
char a[20] = "hello";
char b[20] = "world!";
char c[20] = { 0 };
sprintf(c,"%s", a);//将字符串a中的值输出到字符串c中
puts(c);//打印字符串c
5、sscanf
/**sscanf*/
char t[100] = "56+44";
int i;
int j;
//sprintf(t, "%s", a);
sscanf(t, "%d+%d", &i, &j);//将字符串t中的值作为输入,按照"%d+%d"的格式取出分别给i和j赋值
printf("%d,%d,%d",i, j, i + j);//打印结果:56,44,100
五、备注
文章最后加了字符串的部分输入输出方法,供大家参考。如有不足,欢迎大家评论指正!