以前就有的一個想法,如果有一串字符串,裏面又有數字,又有字母,我們應該如何獲取到裏面的數字呢?廢話不多說,直接看源碼:
#include"stdio.h"
#include"string.h"
int main()
{
char test[100]; //用於接收鍵盤輸入字符串
int longer,i, //i 用於控制循環,longer用於獲取字符串的大小
int nums = 0,numz = 0;
char *flag;
//獲取鍵盤輸入的字符串
printf("請輸入字符串: ");
scanf("%s",test);
printf("test = %s !\n",test);
//解析出輸入字符串的個數
longer = strlen(test);
printf("longer = %d !\n",longer);
//解析出字符串中的數字 -- 指針實現
flag = test;
for(i = 0 ; i < longer ; i++)
{
if((*flag >= '0')&&( *flag <= '9'))
{
numz = numz*10 + *flag - '0';//這裏是用字符的ASCLL碼值進行比較,要減去0的ASCLL碼值即爲實際的數字
}
flag++;
}
printf("指針實現 num = %d !\n",numz);
//解析出字符串中的數字 -- 數組實現
for(i = 0 ; i < longer ; i++)
{
if((test[i] >= '0')&&(test[i] <= '9'))
{
nums = nums*10 + test[i] - '0';//這裏同上
}
}
printf("數組實現 num = %d !\n",nums);
return 0;
}
再看一下運行結果:
這裏寫的比較簡單,還不清楚的小夥伴可以添加我的個人微信 lqy—1997 (中間是三個英文的槓)進行交流。