C語言之從字符串中獲取數字

以前就有的一個想法,如果有一串字符串,裏面又有數字,又有字母,我們應該如何獲取到裏面的數字呢?廢話不多說,直接看源碼:

#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 (中間是三個英文的槓)進行交流。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章