输入一个字符串,内有数字和非数字字符,将其中连续的数字存放于一个数组中。

2023-11-10 18:59

本文主要是介绍输入一个字符串,内有数字和非数字字符,将其中连续的数字存放于一个数组中。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

谭浩强第八章第十六题

思路:本篇使用了多个指针,思路不够整洁,可以只需一个指针完成。

但与简洁思路相同,从字符数组数字的个位开始处理,若需要从高位开始处理,则好像可以少定义一个变量?以后再写。

int main()
{char s[20];scanf("%s", s);int a[20] = {0};char* p = s;								//int num = 0;								//计数连续数字int n = strlen(s);int i = 0;									//整型数组的下标for (; p < s + n; p++){if (*p <= '9' && *p >= '0'){i++;num++;char* q = p;while (*++q <= '9' && *q >= '0') num++;		//移动另一个指针并计算数字个数char* next = --q;							//第三个指针记录数字尾int sum = *q - '0';							//记录数字的个位int m = 0;									//记录每个位要乘10的次数while (q >= p){q--;								//另一个指针后移a[i - 1] += sum;					//整型数组接收每一位数字和num--;								//接收一位数字后计数器减一m++;								//下一位乘10次数加一if (num != 0)						//计数器不为0则下一位自乘{int ret = 0;sum = *q - '0';					//记录下一位for (; ret < m; ret++)			//下一位自乘多少次,由m决定{sum *= 10;}}}p = next;								//指向这一组数字尾	}}for (num = 0; num < i; num++)printf("%d ", a[num]);
}

 结果:

这篇关于输入一个字符串,内有数字和非数字字符,将其中连续的数字存放于一个数组中。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/384638

相关文章

Java中String字符串使用避坑指南

《Java中String字符串使用避坑指南》Java中的String字符串是我们日常编程中用得最多的类之一,看似简单的String使用,却隐藏着不少“坑”,如果不注意,可能会导致性能问题、意外的错误容... 目录8个避坑点如下:1. 字符串的不可变性:每次修改都创建新对象2. 使用 == 比较字符串,陷阱满

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

C++初始化数组的几种常见方法(简单易懂)

《C++初始化数组的几种常见方法(简单易懂)》本文介绍了C++中数组的初始化方法,包括一维数组和二维数组的初始化,以及用new动态初始化数组,在C++11及以上版本中,还提供了使用std::array... 目录1、初始化一维数组1.1、使用列表初始化(推荐方式)1.2、初始化部分列表1.3、使用std::

C++ Primer 多维数组的使用

《C++Primer多维数组的使用》本文主要介绍了多维数组在C++语言中的定义、初始化、下标引用以及使用范围for语句处理多维数组的方法,具有一定的参考价值,感兴趣的可以了解一下... 目录多维数组多维数组的初始化多维数组的下标引用使用范围for语句处理多维数组指针和多维数组多维数组严格来说,C++语言没

Java数字转换工具类NumberUtil的使用

《Java数字转换工具类NumberUtil的使用》NumberUtil是一个功能强大的Java工具类,用于处理数字的各种操作,包括数值运算、格式化、随机数生成和数值判断,下面就来介绍一下Number... 目录一、NumberUtil类概述二、主要功能介绍1. 数值运算2. 格式化3. 数值判断4. 随机

C#从XmlDocument提取完整字符串的方法

《C#从XmlDocument提取完整字符串的方法》文章介绍了两种生成格式化XML字符串的方法,方法一使用`XmlDocument`的`OuterXml`属性,但输出的XML字符串不带格式,可读性差,... 方法1:通过XMLDocument的OuterXml属性,见XmlDocument类该方法获得的xm

JSON字符串转成java的Map对象详细步骤

《JSON字符串转成java的Map对象详细步骤》:本文主要介绍如何将JSON字符串转换为Java对象的步骤,包括定义Element类、使用Jackson库解析JSON和添加依赖,文中通过代码介绍... 目录步骤 1: 定义 Element 类步骤 2: 使用 Jackson 库解析 jsON步骤 3: 添

Java 字符数组转字符串的常用方法

《Java字符数组转字符串的常用方法》文章总结了在Java中将字符数组转换为字符串的几种常用方法,包括使用String构造函数、String.valueOf()方法、StringBuilder以及A... 目录1. 使用String构造函数1.1 基本转换方法1.2 注意事项2. 使用String.valu

Go语言使用Buffer实现高性能处理字节和字符

《Go语言使用Buffer实现高性能处理字节和字符》在Go中,bytes.Buffer是一个非常高效的类型,用于处理字节数据的读写操作,本文将详细介绍一下如何使用Buffer实现高性能处理字节和... 目录1. bytes.Buffer 的基本用法1.1. 创建和初始化 Buffer1.2. 使用 Writ

python修改字符串值的三种方法

《python修改字符串值的三种方法》本文主要介绍了python修改字符串值的三种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录第一种方法:第二种方法:第三种方法:在python中,字符串对象是不可变类型,所以我们没办法直接