C和C++程序员面试秘笈:23---将任意长度的两个正整数字符串相加、字符串的循环右移、字符串的排序及交换

一、将任意长度的两个正整数字符串相加

  • 题目要求:C/C++中有int、float等数据类型来表示数字,但是它们有长度限制。现在我们可以自己设计用字符串表示数字,设计一个函数将两个正整数字符串相加,结果也为一个字符串,并且要考虑进位

C和C++程序员面试秘笈:23---将任意长度的两个正整数字符串相加、字符串的循环右移、字符串的排序及交换

二、字符串的循环右移

  • 题目要求:编写的函数能把一个char组成的字符串循环右移n个位置
  • 例如:对于字符串"abcdefghi",右移之后为"hiabcdefg"

C和C++程序员面试秘笈:23---将任意长度的两个正整数字符串相加、字符串的循环右移、字符串的排序及交换

三、字符串的排序及交换

  • 题目要求:编写一个函数将一条字符串分为两部分,将前半部分按ASCII码升序排序,后半部分不变,(如果字符串是奇数,则中间的字符不变)再将前后两部分交换,最后将字符串输出

C和C++程序员面试秘笈:23---将任意长度的两个正整数字符串相加、字符串的循环右移、字符串的排序及交换