C语言中字符串相关方法使用

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

五、备注

文章最后加了字符串的部分输入输出方法,供大家参考。如有不足,欢迎大家评论指正!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值