字符串copy函数、字符串查找出现次数函数

来源:互联网 发布:js防水涂料厚度 编辑:程序博客网 时间:2024/06/03 17:31

字符串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;}
阅读全文
0 0