簡體   English   中英

如何在C中分割字符和數字

[英]How to split char and digit in c

輸入(字符串):E2

輸出:

字符是E

數量是2

我該怎么辦? 謝謝

我使用strtol,但如果我的輸入為2E,則僅對第一個字符為num起作用,但僅對E2起作用,然后失敗。

int main()
{
    char str[30] = "2E";
    char *ptr;
    long ret;

    ret = strtol(str, &ptr, 10);
    printf("The number(unsigned long integer) is %ld\n", ret);
    printf("String part is %s", ptr);

    return(0);
}

我想要的是如果我輸入E2,ret是2,ptr是E

您可以使用sscanf

char c;
int i;
if (sscanf(input, "%c%d", &c, &i) == 2) /* make sure 2 objects were read */
    printf("The char is %c and the int is %d\n", c, i);

這應該工作:

int main()
{
    char str[30] = "E2";
    char ptr[2];
    long ret;

    ptr[0] = str[0];
    ptr[1] = '\0';
    ret = strtol(str + 1, NULL, 10);

    printf("The number(unsigned long integer) is %ld\n", ret);
    printf("String part is %s", ptr);

    return(0);
}

暫無
暫無

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

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