輸入一個字符串,內有數字和非數字字符,例如:A123x456 17960? ,302tab5876,將其中連續的數字作為一個整數,依次存放到一數組a中。例如,123放在a[0],456放在a1[1].....統計共有多少個整數,並輸出這些數


輸入一個字符串,內有數字和非數字字符,例如:A123x456 17960? ,302tab5876,將其中連續的數字作為一個整數,依次存放到一數組a中。例如,123放在a[0],456放在a1[1].....統計共有多少個整數,並輸出這些數

解題思路: 遇到數字字符,則開始統計連續數字字符的個數,統計完畢后,則從右往左每次乘以10(除了個位數)作為數字的單位,最終相加得到數字;然后越過這個數字,從后邊繼續查找。

答案:

#include<stdio.h>
#include<string.h>

void count_digit(char *str)
{
	int digit[32], count = 0;
	char *ptr = str;
	int i = 0, str_len = strlen(str);
	while (i < str_len) {
		if (*(ptr+i) >= '0' && *(ptr+i) <= '9') {
			int len = 1;//用於統計連續數字的個數
			while (*(ptr + i + len) >= '0' && *(ptr + i+ len) <= '9' && (i+len) < str_len) {//找出從當前位置連續數字的個數
				len++;
			}
			int sum = *(ptr + i + len - 1) - '0';//先獲取個位數的數據
			int unit = 1;//每一位的單位,從十位開始每次乘以10作為單位
			for (int j = len - 2; j >= 0; j--) {//從右往左逐個處理
				unit *= 10;
				sum += (*(ptr + i + j) - '0') * unit;
			}
			digit[count++] = sum;
			i += len; // i需要加上len的長度,越過這個數字,防止一個連續數字中的字符重復處理
			continue;
		}
		i++;
	}
	for (int i = 0; i < count; i++) {
		printf("%d ", digit[i]);
	}
	return;
}
int main()
{
	char buf[1024] = { 0 };
	printf("Please enter a string with numbers:\n");
	gets_s(buf, 1024);
	count_digit(buf);
	printf("\n");
	system("pause");
	return 0;
}

輸入一個字符串,內有數字和非數字字符,例如:A123x456 17960? ,302tab5876,將其中連續的數字作為一個整數,依次存放到一數組a中。例如,123放在a[0],456放在a1[1].....統計共有多少個整數,並輸出這些數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 10.16輸入一個字符串,內有數字和非數字字符,如: a123x456 17960? 302tab5876 將其中連續的數字作為一個整數,依次存放到一數組num中。例如123放在num[0]中,456放在num[1]中……統計共有多少個整數,並輸出這些數。 輸入一個字符串,內有數字和非數字字符。例如:a123x456 17960 302tab5876。將其中連續的數字作為一個整數,依次存放到一維數組a中,例如123放在a[0],456放在a[1]……統計共有多少個整數,並輸出這些數。 輸入一個字符串,內有數字和非數字字符,例如:a123x456 17960? 302tab58768。將其中連續的數字作為一 輸入一個字符串,內有數字和非數字字符,將其中連續的數字作為一個整數,依次存放到一數組a中。統計共有多少個整數,並輸出這些數。 輸入一個字符串,統計共有多少個整數並輸出。 C語言——輸入一個字符串,將連續數字字符轉換為數字學習筆記 如何將一個數字字符串數組轉化為數字整數數組? 提取一個字符串中的數字,並將其轉為數組 有一個字符串,其中包含中文字符、英文字符和數字字符,請統計和打印出各個字符的個數。 有一個字符串,其中包含中文字符、英文字符和數字字符,請統計和打印出各個字符的個數 python 中輸入一個字符串,判斷這個字符串中有多少個字符、數字、空格、特殊字符
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM