☆ C/C++ 字符串的排序、粘贴与转型

由于代码不是在一个文件中,不方便贴在博客页面上,代码我已上传到个人资源中,须要的能够直接下载使用:git

资源地址:https://download.csdn.net/download/qq_42292831/10734117算法

代码基于VS2010编写,在VS2010如下版本没法直接运行,可是代码.cpp文件仍是能够直接分开使用的;编程

****************************************************************************************************************************************数组

 

下面附上代码编写要求(资源中也包含该要求文档):

★1.    请编写程序,实现函数atoi(),不容许使用C标准库函数做字符串转换。
       //函数atoi:将输入字符串转换成整数输出 
       //输入参数:str,输入字符串 
       //          count,从str中转换的最长字符长度,该参 
       //          数缺省值为-1,即要求函数转换至str结束。
       //返回值:转换结果,若str没法转换成整数,返回0
       int atoi(const char str[], int count=-1);安全

【要求】 
       1)    本函数能处理的合法整型数值字符串为符合如下形式:
(whitespace)<sign>[digits],其中(whitespace)表示能够有0个、1个或多个前导空格,<sign>表示能够有0个或1个“±”符号字符,[digits]表示至少有1个[‘0’~‘9’]之间的数字字符,容许数字以’0’开始。sign和第一个数字字符之间无空格,各数字字符之间也无空格。
       2)    当输入的字符串str在(whitespace)<sign>以后的第一个字符非数字字符时,函数应该马上返回INT_MIN(-2147483648);
       3)    当输入的字符串str能够输入至少1个数字字符,但其后遇到非数字字符时,中止输入,返回遇到非数字字符以前的转换结果;
       4)    能够要求用户输入的字符串长度不超过你设定的最大值。函数

 

★2. 用指针方式实现函数strcat。函数strcat(s,t)将t指向的常量字符串复制到s指向的字符串的尾部。
      //函数strcat: 实现两个字符串的拼接, s <- s + t
      //输入参数: char * s,包含’\0’结束符的源字符串1
      //          char * t,包含’\0’结束符的源字符串2
      //返回值: 源字符串t拼接到源字符串s的尾部,结果存在源字符串s中,返回源字符串s
      char * strcat(char * s, const char * t);spa

【要求】 
1) 用指针编程;
2) 不能使用C标准库<string.h>的函数,包括strlen; 
3) 拼接完成后结果字符串s应以’\0’结束。.net

 

★3.    对于题2,编写函数的安全版strncat,最多对参数字符串中的n个字符进行操做,即strncat(s,t,n)最多将字符串t中的n个字符拼接到s的尾部。
      //函数strncat: 实现两个字符串的拼接, s <- s + t
      //输入参数: char * s,包含’\0’结束符的源字符串1
      //          char * t,包含’\0’结束符的源字符串2
      //          int n,t拼接到s尾部的最长长度n
      //返回值: 源字符串t拼接到源字符串s的尾部,结果存在源字符串s中,返回源字符串s
      //说明: 若t在n个字符后仍未遇到’\0’,则函数应马上退出(此时不须要为s添加结束
      //符),不然应为s添加结束符’\0’而正常退出
      char * strncat(char * s, const char * t, int n);指针

 

★4.    编写函数mysort。实现一组字符串的排序。
      //函数mysort: 实现一组字符串的排序,排序依据遵守strcmp函数规定的字典顺序,即
      //strcmp(s,t)>0时,定义s大于t;
      //strcmp(s,t)==0时,定义s等于t;
      //strcmp(s,t)<0时,定义s小于t.
      //输入参数: char * lineptr[],指针数组,包含若干个字符串,每一个均以’\0’结束
      //          int start,要排序的第一个字符串在lineptr中的下标
      //          int end,要排序的最后一个字符串在lineptr中的下标
      //返回值: 无
      void mysort(char * lineptr[], int start, int end);
【要求】 
1) 使用冒泡排序算法;
2) 不能使用C标准库函数,包括其中的排序函数;
3) 可使用习题7中的getline函数,让用户从键盘输入10行文本,而后对这10行文本进行排序后打印输出。排序

 

 

 

****************************************************************************************************************************************

 

             最快的脚步不是跨越,而是继续,最慢的步伐不是小步,而是徘徊。
 

****************************************************************************************************************************************