[英]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.