C++如何实现递增字符串。就是输入一个字符(整行)然后以01 02
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++如何实现递增字符串。就是输入一个字符(整行)然后以01 02相关的知识,希望对你有一定的参考价值。
C C++如何实现递增字符串。就是输入一个字符(整行)然后以01 02 03 加序列
比如我要输入:林家 先生。 这4个字
注意,之间有空格
后面加如 000 00 这样的数字位数。
林家 先生 000
林家 先生 001
林家 先生 002
林家 先生 003
.....
我本来是想实现集体图片名字取名的,但是就在000这样的位数上卡住了
用x++这样的话,只能从一位算起。这样就起不了名了,一定要001 002 003这样
不能1 2 3这样。
最终名字效果是:
林间 学校 007.jpg
林间 学校 008.jpg
林间 学校 009.jpg
我只需要输入 前面的文字和最后的个数就可以了
最好能够控制0的个数,000 0000 00000 0000000这样
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char * argv[])
int i;
int num;
char nameStr[256] = 0;
char suffixStr[256] = 0;
char countStr[256] = 0;
int count;
char numOfZeroStr[256] = 0;
int numOfZero;
char format[512] = 0;
char nameList[256][256] = 0;
do
printf("请输入图片名字:");
gets(nameStr);
num=strlen(nameStr);
while(num==0);
do
printf("请输入图片后缀:");
gets(suffixStr);
num=strlen(suffixStr);
while(num==0);
do
printf("请输入图片个数:");
gets(countStr);
num=strlen(countStr);
while(num==0);
count = atoi(countStr);
do
printf("请输入数字位数:");
gets(numOfZeroStr);
num=strlen(numOfZeroStr);
while(num==0);
numOfZero = atoi(numOfZeroStr);
/* 生成格式化字符串 */
sprintf(format, "%s %%%d%dd.%s", nameStr, 0, numOfZero, suffixStr);
for(i=0; i<count; ++i)
/* 逐个生成文件名 */
sprintf(nameList[i], format, i);
/* nameList就是你要的名字数组 */
for(i=0; i<count; ++i)
printf("%s\n", nameList[i]);
return 0;
运行结果:
请输入图片名字:林家 先生
请输入图片后缀:jpg
请输入图片个数:5
请输入数字位数:3
林家 先生 000.jpg
林家 先生 001.jpg
林家 先生 002.jpg
林家 先生 003.jpg
林家 先生 004.jpg 参考技术A 用格式化输出就好了
int i=1;
char buf[20];
sprintf(buf,"林间 学校 %03d",i);
运行结果 buf=林间 学校 001 参考技术B 直接用字符串输出
2022华为机试真题 C++ 实现非严格递增连续数字序列
目录
题目
题目描述:
输入一个字符串仅包含大小写字母和数字,求字符串中包含的最长的非严格递增连续数字序列的长度(比如12234属于非严格递增连续数字序列)。输入描述:
输入一个字符串仅包含大小写字母和数字,输入的字符串最大不超过255个字符。输出描述:
最长的非严格递增连续数字序列的长度示例 1:
输入
abc2234019A334bc
输出
4
说明:
2234为最长的非严格递增连续数字序列,所以长度为4测试用例:
aaaaaa44ko543j123j7345677781--> 34567778
aaaaa34567778a44ko543j123j71-
以上是关于C++如何实现递增字符串。就是输入一个字符(整行)然后以01 02的主要内容,如果未能解决你的问题,请参考以下文章
华为OD机试真题 C++ 实现递增字符串2023 Q1 | 100分