溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

strcpy和strstr

發布時間:2020-07-12 15:08:53 來源:網絡 閱讀:451 作者:匯天下豪杰 欄目:編程語言

1、編程實現strcpy()函數的功能

(1)方法一:

#include<stdio.h>

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<stdio.h>

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<stdio.h>
#include<string.h>

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<stdio.h>
#include<string.h>
#include<malloc.h>

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




向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女