0
我試圖從一個文件中提取電話號碼,並打印出來Ç - 解析電話號碼從字符串
輸入
my number is (123) 456-7897 ok, my other number is (654) 393-3030 buddy.
我的變量是
char *last_token;
char *firstpart;
char buffer[BUFFER_SIZE];
char *phoneNumber;
這裏是我當前的循環
while(fgets(buffer, BUFFER_SIZE, input) != NULL){
last_token = strtok(buffer, " \n");
while(last_token != NULL) {
//see if first part of number is correct
if(*last_token == '(' && isdigit(*(last_token + 1)) && isdigit(*(last_token + 2)) && isdigit(*(last_token + 3)) && *(last_token + 4) == ')' && *(last_token + 5) == '\0') {
firstpart = last_token; //if it is save it
last_token = strtok(NULL, " \n"); //check next part
//if second part is also correct
if (isdigit(*last_token) && isdigit(*(last_token + 1)) && isdigit(*(last_token + 2)) && *(last_token + 3) == '-' && isdigit(*(last_token + 4)) && isdigit(*(last_token + 5)) && isdigit(*(last_token + 6)) && isdigit(*(last_token + 7)) && *(last_token + 8) == '\0') {
phoneNumber = firstpart; //set phone number to first part
strcat(phoneNumber, " "); //add a space to phone number
strcat(phoneNumber, last_token); //add the last part of the phone nmber
printf("%s\n", phoneNumber); //print the number
}
}
last_token = strtok(NULL, " \n");
}
}
應該打印
(123) 456-7897
(654) 393-3030
但代替其打印
(123)
(654)
即時猜測的字符串後遭到停權),但我想不出爲什麼