字符串处理函数(笔记)

memchr -- 在内存空间中搜索一个字符
memcmp -- 比较内存空间
memcpy -- 拷贝内存空间
memmove -- 拷贝内存空间
memset -- 使用一个常量字节填充内存空间

strcat -- 连接字符串 
strcmp -- 比较字符串 
strcpy -- 拷贝字符串 
strlen -- 获取字符串的长度

strncat -- 连接字符串(受限) 
strncmp -- 比较字符串(受限)
strncpy -- 拷贝字符串(受限)

1. memchr

#include<stdio.h>
#include<string.h>
//void *memchr(const void *s, int c, size_t n);
int main()
{
	char str="Hello World!";
	char *pstr=0;
	pstr=(char*)memchr(str,'W',100);
	if(ptr!=0) printf("找到字符W")else printf("没找到字符W");
	return 0;
}

2. memcmp

#include<stdio.h>
#include <string.h>
//int memcmp(const void *s1, const void *s2, size_t n);
int main()
{
        char str1[10] = "tql";
        char str2[10] = "tql";
        if (memcmp(str1, str2, 10) == 0)
        	printf("两个内存空间完全一致!\n");
        else
        	printf("两个内存空间不一致!\n");
        return 0;
}
/*备注
返回值<0:字符串 1 的字符小于字符串 2 对应位置的字符返回值
返回值=0:两个字符串的内容完全一致
返回值>0:字符串 1 的字符大于字符串 2 对应位置的字符

3. memcpy

没看懂 下一个

4. memmove

同上

5.memset

用于初始化
例如 memset(c,0,sizeof(c);

tips:

mem 开头的主要是用于针对内存空间处理,不过由于内存空间的单位也是字节(跟字符串一
样),所以看着两个函数是一样的(事实上返回值就不一样了,一个是返回 char *,一个是
返回 void *)。不过在一定的条件下,mem 打头的效率要高一些。

//也许吧 反正我看不懂

6.strcat

#include <stdio.h>
#include <string.h>
//char *strncat(char *dest, const char *src);
int main()

{

        char str1[100] = "Hello";
        char str2[] = "World!";
        printf("str1: %s\n", str1);
	strcat(str1, " ");
	printf("str1: %s\n", str1);
        strcat(str1, str2);
        printf("str1: %s\n", str1);
        return 0;
//这个简单 T_T
}

7. strcmp

#include <stdio.h>
#include <string.h>
//int strcmp(const char *s1, const char *s2);
int main()
{
        char str1[10] = "FishC.com";
        char str2[20] = "FishC.com";
        if (!strcmp(str1, str2))
        	printf("两个字符串完全一致!\n");
        else
        	printf("两个字符串不同!\n");
        return 0;
}

/*返回值<0:字符串 1 的字符小于字符串 2 对应位置的字符返回值
  返回值=0:两个字符串的内容完全一致
  返回值>0:字符串 1 的字符大于字符串 2 对应位置的字符

8. strcpy

#include <stdio.h>
#include <string.h>
//char *strcpy(char *dest, const char *src);
int main()
{
        char str1[] = "Original String";
        char str2[] = "New String";
        char str3[100];
        strcpy(str1, str2);
        strcpy(str3, "Copy Successful");
        printf("str1: %s\n", str1);
        printf("str2: %s\n", str2);
        printf("str3: %s\n", str3);
        return 0;
}

9.strlen

懂得都懂

10.strncat

#include <stdio.h>
#include <string.h>
//char *strncat(char *dest, const char *src, size_t n);
int main()
{
        char str1[20] = "Hello";
        char str2[20] = "World";

        strncat(str1, " ", 2);
        strncat(str1, str2, 10);
        printf("str1: %s\n", str1);
        return 0;
}

11. strncmp

#include <stdio.h>
#include <string.h>
//int strncmp(const char *s1, const char *s2, size_t n);
int main()
{
        char str1[40] = "FishC";
        char str2[40] = "FishC.com";
        if (!strncmp(str1, str2, 5))
        	printf("str1和str2前5个字符相同!\n");
        else
        	printf("str1和str2前5个字符不同!\n");
        return 0;
 }

12. strncpy

#include <stdio.h>
#include <string.h>
//char *strncpy(char *dest, const char *src, size_t n);
int main()
{
        char str1[] = "To be or not to be";
        char str2[];
        char str3[];
        strncpy(str2, str1, sizeof(str2));
        strncpy(str3, str2, 5);
        str3[5] = '\0';
        printf("%s\n", str1);
        printf("%s\n", str2);
        printf("%s\n", str3);
        return 0;

}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值