黑马程序员------C语言常用字符串处理函数

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

1:strlen:计算字符串的长度

函数名:strlen

原型:int strlen(char *s);

用法:#include <string.h>

功能:计算字符串s的长度

说明:返回s的长度,不包括结束符NULL


#include <stdio.h>
#include <string.h>

#define SIZE	100
int main(int argc, const char *argv[])
{
	char buf[SIZE] = "";
	int len = 0;
	gets(buf);
	len = strlen(buf);//计算字符串的长度
	printf("len = %d\n", len);
	return 0;
}

2:atoi:字符串转整型

buf = “1379”;”-387”

atoi(buf)—>1379 , -387

原型:int atoi(const char *nptr);

参数说明:参数nptr字符串

头文件: #include <stdlib.h>

功能:把字符串转换成整型数。ASCII to integer 的缩写。

说明:如果第一个非空格字符存在,是数字或者正负号则开始做类型转换,之后检测到非数字(包括结束符 \0)字符时停止转换,返回整型数。否则,返回零

#include <stdio.h>
#include <stdlib.h>

#define SIZE	100
int main(int argc, const char *argv[])
{
	char buf[SIZE] = "";
	gets(buf);
	printf("atoi(buf) = %d\n", atoi(buf));
	return 0;
} 

3:strcpy:字符串的复制

原型声明:char *strcpy(char* dest, const char *src);

头文件:#include <string.h>

功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间

说明:srcdest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。

返回指向dest的指针。

#include <stdio.h>
#include <string.h>

#define SIZE	100
int main(int argc, const char *argv[])
{
	char buf1[SIZE] = "";
	char buf2[SIZE] = "";
	gets(buf2);

	strcpy(buf1, buf2);
	printf("buf1 = %s\n", buf1);
	printf("buf2 = %s\n", buf2);

	return 0;
}

4:strcat:字符串的拼接

buf1 = bei jing 

buf2 = huan ying nin

strcat(buf1, buf2);

函数名:strcat

原型: char *strcat(char *dest,char *src);

参数说明:参数nptr字符串

头文件: #include <string.h>

功能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'

说明:srcdest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。

返回指向dest的指针。


#include <stdio.h>
#include <string.h>

#define SIZE	100
int main(int argc, const char *argv[])
{
	char buf1[SIZE] = "";
	char buf2[SIZE] = "";
	gets(buf1);
	gets(buf2);

	strcat(buf1, buf2);
	printf("buf1 = %s\n", buf1);
	printf("buf2 = %s\n", buf2);

	return 0;
} 

5:strcmp:字符串的比较

函数名:strcmp

原型:int strcmp(const char *s1,const char * s2);

所在头文件:#include <string.h>

功能:比较字符串s1s2

一般形式:strcmp(字符串1,字符串2)

说明:

s1<s2时,返回为负数注意不是-1

s1==s2时,返回值= 0

s1>s2时,返回正数注意不是1

即:两个字符串自左向右逐个字符相比

(按ASCII值大小相比较),直到出现不同

的字符或遇'\0'为止。


#include <stdio.h>
#include <string.h>

#define SIZE	100
int main(int argc, const char *argv[])
{
	char buf1[SIZE] = "";
	char buf2[SIZE] = "";
	int t = 0;
	gets(buf1);
	gets(buf2);

	t = strcmp(buf1, buf2);
	if (t < 0){
		printf("buf1 < buf2\n");
	} else if(t == 0) {
		printf("buf1 = buf2\n");
	} else{
		printf("buf1 > buf2\n");
	}

	return 0;
}

6:strchr:字符串中查找某个字符

buf = “skhdhkf”—>&buf[2] ——>buf+2—>printf(buf+2)

ch = ‘h’

函数名:strchr

char *strchr(const char* _Str,int _Val)

char *strchr(char* _Str,int _Ch)

头文件:#include <string.h>

功能:查找字符串s中首次出现字符c的位置

说明:返回首次出现c的位置的指针,返回的地址是字符串在内存中随机分配的地址再加上你所搜索的字符在字符串位置,如果s中不存在c则返回NULL

#include <stdio.h>
#include <string.h>

#define SIZE	100
int main(int argc, const char *argv[])
{
	char buf[SIZE] = "";
	char ch = 0;
	
	gets(buf);
	ch = getchar();

	printf("%s\n", strchr(buf, ch));

	return 0;
}

7:strstr:字符串中查找子串

buf1 = bei jing ei sdjkfhk ——>buf+1—>printf——>

buf2 = ei

函数名: strstr

头文件:#include <string.h>

函数原型:char *strstr(const char *str1, const char *str2);

语法:* strstr(str1,str2)

str1: 被查找目标 string expression to search.

str2: 要查找对象 The string expression to find.

返回值:该函数返回str2第一次在str1中的位置,如果没有找到,返回NULL


#include <stdio.h>
#include <string.h>

#define SIZE	100
int main(int argc, const char *argv[])
{
	char buf1[SIZE] = "";
	char buf2[SIZE] = "";
	
	gets(buf1);
	gets(buf2);

	printf("%s\n", strstr(buf1, buf2));

	return 0;
} 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值