簡體   English   中英

如何用逗號分割 c 中的字符串

[英]How split a string in c with comma

我創建了一個 function 來用逗號分割字符串。

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

char splitted_line[8][50];

void split(char *line){
    
    printf("line 9\n");
    char *part = strtok(line, ",");
    printf("line 11\n");

    for(int i=1; i<8; i++){
        strcpy(splitted_line[i], part);
        printf("%s\n", splitted_line[i]);
        part = strtok(NULL, ",");
    }
}

int main(){
    char *line = "123,456,789";
    split(line);
    return 0;   
}

但運行后的結果是:

line 9
Segmentation fault (core dumped)

似乎問題出在char *part = strtok(line, ","); 但我不知道那是什么。

strtok()將直接修改傳遞的原始字符串。

您不得修改字符串文字。

char *line = "123,456,789";

應該是可修改數組

char line[] = "123,456,789";

在執行strcpy(splitted_line[i], part);之前不要忘記檢查part是否不是NULL .

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM