字符串知识1 (strcmp,strncmp,strstr)

L1-070 吃火锅

参考了一下网上的代码,学到了三种字符串函数:

1.strncmp(const char* str1, const char* str2, int num) 

        若在规定长度 n 内两个字符串相同,返回 0 ;否则比较第一个不同位置上的字符的ASCII码,返回 - 1 , 或 1 。

2.strcmp(const char* str1, const char* str2)

        如果返回值小于 0,则表示 str1 小于 str2。如果返回值大于 0,则表示 str1 大于 str2。如果返回值等于 0,则表示 str1 等于 str2。

        样例:

 char arr1[] = {"abcde"};

char arr2[] = {"abcde"};

int ret = strcmp(arr1, arr2);

printf("%d", ret);

3.strstr(const char *haystack, const char *needle)

        其中,haystack是要被检索的C字符串,needle是在haystack字符串内要搜索的小字符串1。如果在haystack中找到了needle,该函数返回指向haystack中第一次出现needle的位置的指针;如果未找到,则返回NULL。

        样例1:输出子串

const char haystack[20] = "RUNOOB";

const char needle[10] = "NOOB";

// 调用strstr函数查找needle在haystack中的位置

char *ret;

ret = strstr(haystack, needle);

printf("子字符串是: %s\n", ret);

输出:

子字符串 ret 是: NOOB

        样例2:替换子串

char str[] = "This is a simple string";

char *pch;

// 调用strstr函数查找"simple"在str中的位置

pch = strstr(str, "simple");

 

// 如果找到了,就用"sample"替换"simple"

if (pch != NULL)

strncpy(pch, "sample", 6);

puts(str);

输出:

This is a sample string

        样例3:使用strstr函数和一个循环计数器统计一个字符串在另一个字符串中出现的次数

char a1[1001], a2[1001];

scanf("%s %s", a1, a2);

// 定义一个指针和一个计数器

char *p;

int k = 0;

// 调用strstr函数循环查找a2在a1中出现的次数

p = a1;

while ((p = strstr(p, a2)) != NULL)

{

k++;

p++;

}

printf("%d", k);

输出:

5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值