strcpy和strstr

1、编程实现strcpy()函数的功能

创新互联是专业的冷水滩网站建设公司,冷水滩接单;提供做网站、网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行冷水滩网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

(1)方法一:

#include

int main(void){
    char str1[80] = "abcdefg";
    char str2[80];
    int i;

    for(i = 0; str1[i]; i++){
        str2[i] = str1[i];
    }   

    str2[i] = 0;
    printf("%s\n", str1);
    printf("%s\n", str2);

    return 0;
}

(2)、方法二:一行核心代码实现字符串复制

#include

int str_copy(char *str1, char *str2);
int str_copy(char *str1, char *str2){
/*  
    for(; *str1; str1++, str2++){
        *str2 = *str1;
    }
    *str2 = 0;
}

    for(; *str1; ){
        *str2++ = *str1++;
    }

    *str2 = 0;


    while((*str2 = *str1) != 0){
        str1++;     //此时,就不用出循环在赋指为0;
        str2++;
    }

    while((*str2++ = *str1++) != 0);
*/  
    if(str1 == NULL || str2 == NULL){
        return -1; 
    }

    while(*str2++ = *str1++);

    return 0;

int main(void){
    char str1[80] = "abcdefg";
    char str2[80];
    //char *str2 = NULL;
    int ret = 0;

    ret = str_copy(str1, str2);
    if(ret != 0){
        printf("有一个地址为空,所以有错\n");
    }else{
        printf("%s\n", str1);
        printf("%s\n", str2);
    }

    return 0;
}

运行结果:

strcpy和strstr

2、求子串出现在字符串中的次数

代码如下:

#include
#include

void strstrCount(char *p, char *q, int *count);
void strstrCount(char *p, char *q, int *count){
    int c = 0;
    
    if(p == NULL || q == NULL){
        printf("有地址为空,不能查找子串个数\n");
        return;
    }   

    while(p = strstr(p, q)){
        c++;
        p = p + strlen(q);
        if(p == NULL){
            break;
        }   
    }   

    *count = c;
}


int main(void){
    char *p = "abc12421abc34345abc325423abc";
    char *q = "abc";
    int count = 0;

    strstrCount(p, q, &count);
    printf("%d\n", count);

    return 0;
}

运行结果:

strcpy和strstr

3、去掉字符串的前后空格

代码如下:

#include
#include
#include

void trimSpace(char **str1, char *str2);
void trimSpace(char **str1, char *str2){
    int length = strlen(str2);
    char *tmp;

    *str1 = (char *)malloc(sizeof(char)*length);
    tmp = *str1;

    for(; *str2; str2++){
        if(*str2 != ' '){
            *tmp++ = *str2;
        }   
    }   
    *tmp = 0;
}

int main(void){
    char str[] = "               abcdefg               "; 
    char *str1;

    printf("%s\n", str);
    trimSpace(&str1, str);
    printf("%s\n", str1);
}

运行结果:

strcpy和strstr


网站名称:strcpy和strstr
分享地址:http://pwwzsj.com/article/poeeoo.html