输入一个字符串,内有数字和非数字字符,例如: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