当前位置: 首页> 汽车> 报价 > 大型网站建设部署方案_网页制作行为特效视频教程_企业网站建设公司_百度网络营销的概念

大型网站建设部署方案_网页制作行为特效视频教程_企业网站建设公司_百度网络营销的概念

时间:2025/7/8 23:55:41来源:https://blog.csdn.net/2401_86982397/article/details/144175908 浏览次数: 0次
大型网站建设部署方案_网页制作行为特效视频教程_企业网站建设公司_百度网络营销的概念

【问题描述】
编写一个函数void  str_bin(char str1[ ], char str2[ ]), str1、str2是两个有序字符串(其中字符按ASCII码从小到大排序),将str2合并到字符串str1中,要求合并后的字符串仍是有序的,允许字符重复。在main函数中测试该函数:从键盘输入两个有序字符串,然后调用该函数,最后输出合并后的结果。
【输入形式】
分行从键盘输入两个有序字符串(不超过100个字符)
【输出形式】
输出合并后的有序字符串
【输入样例】

aceg
bdfh

【输出样例】

abcdefgh

【样例说明】
输入两个有序字符串aceg和bdfh,输出合并后的有序字符串abcdefgh

 

#include <iostream>
#include <cstring>
using namespace std;//函数声明:str_bin函数用于将两个有序字符串进行合并
//str1和str2是两个输入的字符数组,代表要合并的两个有序字符串
//这里要求字符串中的字符按ASCII码从小到大排序
//合并后的字符串将存放在str1中,并且仍然保持有序,允许字符重复
void str_bin(char str1[], char str2[]);int main()
{//定义字符数组str1,用于存储输入的第一个字符串//数组大小为100,可容纳最多99个字符(因为还需要一个位置存放字符串结束符'\0')char str1[100];//定义字符数组str2,用于存储输入的第二个字符串//数组大小同样为100,可容纳最多99个字符及字符串结束符'\0'char str2[100];//使用cin.getline函数从键盘读取一行输入,并将其存储到str1数组中//该函数会读取输入流中的字符,直到遇到换行符'\n'为止,但换行符不会被存储到str1数组中//最多读取100个字符(包括空格等所有字符),如果输入的字符数超过100,超出部分将被丢弃cin.getline(str1, 100);//再次使用cin.getline函数从键盘读取另一行输入,并将其存储到str2数组中//同样最多读取100个字符,读取到换行符为止,换行符不存储,超出部分丢弃cin.getline(str2, 100);//调用str_bin函数,将已经读取到的两个字符串str1和str2作为参数传递进去//在str_bin函数内部,将会把str2合并到str1中,使str1成为合并后的有序字符串str_bin(str1, str2);//使用cout输出合并后的str1字符串//输出完毕后,再输出一个换行符'\n',使输出结果在控制台显示更加清晰美观cout << str1 << "\n";return 0;
}//str_bin函数的具体实现部分
void str_bin(char str1[], char str2[])
{//计算str1字符串的长度,这里使用strlen函数来获取//strlen函数会从str1指向的起始位置开始,逐个字符计数,直到遇到字符串结束符'\0'为止//它返回的长度值是不包含字符串结束符'\0'的字符个数int len1 = strlen(str1);//同样使用strlen函数计算str2字符串的长度int len2 = strlen(str2);//初始化三个整型变量i、j、k,它们将作为后续循环操作中对str1、str2和临时数组temp的索引//i用于指向str1中的当前字符位置//j用于指向str2中的当前字符位置//k用于指向临时数组temp中的当前存储位置int i = 0, j = 0, k = 0;//定义一个临时字符数组temp,用于暂存合并过程中的字符//数组大小设置为200,是考虑到合并后的字符串长度可能会比str1和str2单独的长度之和还要长//但在实际情况中,如果对输入字符串长度有严格限制,也可以根据具体情况设置更合适的大小char temp[200];//以下是一个循环结构,用于比较str1和str2中的字符,并将较小的字符依次放入临时数组temp中//只要str1和str2中都还有未处理的字符(即i < len1 且 j < len2),循环就会继续执行while (i < len1 && j < len2){//如果str1中当前位置(索引为i)的字符的ASCII码值小于str2中当前位置(索引为j)的字符的ASCII码值if (str1[i] < str2[j])//将str1中当前位置的字符放入临时数组temp的当前位置(索引为k)temp[k++] = str1[i++];else//否则,如果str2中当前位置字符的ASCII码值小于或等于str1中当前位置字符的ASCII码值//将str2中当前位置的字符放入临时数组temp的当前位置(索引为k)temp[k++] = str2[j++];}//当str1中还有剩余字符(即i < len1),而str2中的字符已经全部处理完毕(j >= len2)时//以下循环会将str1中剩余的字符依次放入临时数组temp中while (i < len1)temp[k++] = str1[i++];//当str2中还有剩余字符(即j < len2),而str1中的字符已经全部处理完毕(i >= len1)时//以下循环会将str2中剩余的字符依次放入临时数组temp中while (j < len2)temp[k++] = str2[j++];//初始化一个整型变量m,用于将临时数组temp中的合并后的字符串逐个字符地复制回str1数组中int m = 0;//以下循环会将临时数组temp中的字符,按照顺序逐个复制到str1数组中//从索引为0的位置开始,直到将临时数组temp中所有合并后的字符都复制完毕while (m < k){str1[m] = temp[m];m++;}//在将临时数组temp中的字符全部复制到str1数组后,需要在str1数组的末尾添加字符串结束符'\0'//这样才能确保str1是一个完整的、符合C++字符串格式要求的字符串str1[m] = '\0';
}

关键字:大型网站建设部署方案_网页制作行为特效视频教程_企业网站建设公司_百度网络营销的概念

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: