1. 程式人生 > >【Linux c】字串的擷取

【Linux c】字串的擷取

對字串的擷取:

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

//截斷有特殊符號的字串,並取後段
void cutString_A(char* string) {
    char *p_start = string;
    char newString[32];

    while(*p_start) {
        if (*p_start == '.') {
            p_start++;
            strncpy(newString, p_start, sizeof(newString));
            break;
        }
        p_start++;
    }

    printf("newString = %s\n", newString);
}

//截斷有特殊符號的字串,並取前段
void cutString_B(char* string) {
    char *p_start = string;
    char newString[32];
    int num = 0;

    while(*p_start) {
        if (*p_start == '.') 
            break;
        p_start++;
        num ++;
    }

    strncpy(newString, string, num);
    printf("newString = %s\n", newString);
}

//擷取字串的前n個字元
void cutString_C(char* string, int num) {
    char *p_start = string;
    char newString[32];

    strncpy(newString, p_start, num);
    printf("newString = %s\n", newString);
}

//擷取字串的後n個字元
void cutString_D(char* string, int num) {
    char *p_start = string;
    char newString[32];

    int len = strlen(string);
    strncpy(newString, p_start + (len - num), sizeof(newString));
    
    printf("newString = %s\n", newString);
}


int main(void)
{
    char string[32] = "hello.txt";
    cutString_A(string);
    cutString_B(string);
    cutString_C(string, 5);
    cutString_D(string, 5);

    return 0;
}