您的位置:首页 > 其它

C和指针之字符串之strlen、strcpy、 strcat、strcmp使用总结

2017-11-19 17:20 387 查看

1、常见字符串相关操作

我们知道有strlen、 strcpy、strcat、strcmp、这样一一系列函数





2、实现Demo

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

//求字符串长度并且打印
void get_len(char *p)
{
int len = strlen(p);
printf("%s len is %d\n", p, len);
}

//字符串复制,这里默认des是通过字符数组传递进来
char *str_copy(char *des, const char *src, int des_len)
{
//复制函数des内存空间必须必src大,复制新的字符串已
//'\0'结尾,复制的结果就是返回目标元素的指针
int src_len = strlen(src);
if (des_len <= src_len)
return NULL;
char *result = strcpy(des, src);
return result;
}

//字符串连接
char *str_cat(char *des, const char *src)
{
//strcat函数必须要保证字符串连接字符串后面后空间足够
//字符串返回值就是目标指针
char *result = strcat(des, src);
return result;
}

void str_cmp(const char *s1, const char *s2)
{
//从左向右一次每个字符依次比较,哪个出现大就是谁大
//result是0表示相等,所以我们不能这样
//if (strcmp(s1, s2))而是if (strcmp(s1, s2) == 0)
int result =  strcmp(s1, s2);
if (result == 0)
{
printf("%s == %s\n", s1, s2);
}
else if (result > 0)
{
printf("%s > %s\n", s1, s2);
}
else
{
printf("%s < %s\n", s1, s2);
}
}
int main()
{
char *p = "123456";
char a[10] = "123456789";
//求字符串长度
get_len(p);
get_len(a);
//字符串复制
char *cpy_result = str_copy(a, p, sizeof(a) / sizeof(a[0]));
printf("cpy_result is %s\n", cpy_result);
char *src = "yu";
char des[10] = "chen";
char *cat_result = str_cat(des, src);
printf("cat_result is %s\n", cat_result);

const char *s1 = "chencu";
const char *s2 = "chencu";
str_cmp(s1, s2);
return 0;
}




3、运行结果

1111deMacBook-Pro:dabian a1111$ vim string_demo.c
1111deMacBook-Pro:dabian a1111$ gcc -g string_demo.c -o demo
1111deMacBook-Pro:dabian a1111$ ./demo
123456 len is 6
123456789 len is 9
cpy_result is 123456
cat_result is chenyu
chencu == chencu
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐