字符串copy函数
//避免操作空指针以及引入辅助指针变量增强程序的健壮性
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int str_cpy06(char *from, char *to)
{
char * tmpfrom = from;//避免修改形参
char * tmpto = to;
if (from == NULL || to == NULL)//避免操作空指针
return -1;
while (*tmpto++ = *tmpfrom++);
printf("from:%s\n",from);
return 0;
}
int main(void)
{
char *src = "abcd";
char buf[64];
str_cpy06(src, buf);
printf("buf:%s\n", buf);
system("PAUSE");
return 1;
}
字符串查找函数
strstr–do-while模型(strstr模型)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int getCountDoWhile(char * p_str, char *sub_str, int *ncount)
{
int ret = 0;
char * src = p_str;
int tmp_count = 0;
if (p_str == NULL || sub_str == NULL || ncount == NULL)//合法性检测
{
ret = -1;
printf("%s is error:(p_str == NULL || sub_str == NULL || ncount == NULL)\n", __FUNCTION__);
return ret;
}
do{
src = strstr(src, sub_str);
if (src != NULL)
{
tmp_count++;
src += strlen(sub_str);
}
else{
break;
}
} while (*src != '\0');
*ncount = tmp_count;
return ret;
}
int main(void)
{
//strstr(str, str2)
int ncount = 0;
int ret = 0;
char *p = "11abcd111122abcd3333322abcd3333322qqq";
ret = getCountDoWhile(p,"abcd",&ncount);
if (ret != 0){
printf("func getCountDoWhile() err:%d \n", ret);
return ret;
}
printf("ncount:%d \n", ncount);
system("PAUSE");
return ret;
}
while模型
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int getCountWhile(char * p_str, char *sub_str, int *ncount)
{
int ret = 0;
char * src = p_str;
int tmp_count = 0;
if (p_str == NULL || sub_str == NULL || ncount == NULL)//合法性检测
{
ret = -1;
printf("%s is error:(p_str == NULL || sub_str == NULL || ncount == NULL)\n", __FUNCTION__);
return ret;
}
while (src = strstr(src,sub_str)){
tmp_count++;
src += strlen(sub_str);
if (*src == '\0')
break;
}
*ncount = tmp_count;
return ret;
}
int main(void)
{
//strstr(str, str2)
int ncount = 0;
int ret = 0;
char *p = "11abcd111122abcd3333322abcd3333322qqq";
ret = getCountWhile(p, "abcd", &ncount);
if (ret != 0){
printf("func getCountWhile() err:%d \n", ret);
return ret;
}
printf("ncount:%d \n", ncount);
system("PAUSE");
return ret;
}