我正在尋找一種在 C 中的最后一個空格處將字串分隔為字串和整數的方法
"121 212 27387" into "121 212" and 27387
"pur ple 16091" into "pur ple" and 16091
"98!=76 54321 22143" into "98!=76 54321" and 22143
整數可以用 atoi(strrchr()) 提取,但我不知道如何提取字串,sscanf 不起作用,因為它停在第一個空格
uj5u.com熱心網友回復:
您只需要找到最后一次出現的空間。分配一個指向地址的指標。從那里您可以將數字轉換為整數,并且可以將字串復制到新變數。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char substring[32];
char string[] = "121 212 27387";
char *p = strrchr(string, ' ');
size_t distance = p - &string[0];
int num = atoi(p);
strncpy(substring, string, distance);
printf("num = %d\n", num);
printf("distance = %d\n", distance);
printf("substring = %s\n", substring);
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/421913.html
標籤:
下一篇:在C字串中添加字符填充
