如何对字符串本身进行操作来实现逆向输出

时间:2023-01-31 22:32:25

首先定义一个字符串:

char string[] = "iphone6plus";

我们通过观察字符串可以看出,如果要在原串的基础修改来实现字符串的逆向输出,我们需要把字符串第一位和最后一位进行交换,第二位和倒数第二位进行交换,第三位和倒数第三位进行交换,如此循环进行,如果字符的个数为奇数,那么中间的一位数(e)位置不会发生变化,如果字符的个数为偶数,那么最后字符都会交换一遍,交换结束的位置都是字符串的中间位置。这样我们就可以写出代码:

char string[] = "iphone6plus";

unsigned long length = strlen(string);     // 计算字符串的长度


for(int i = 0; i < length / 2; i++){      //对字符串进行遍历,终点为字符串的中点

char temp;

temp = string[i];

string[i] = string[length - i - 1];

string[length - i - 1] = temp;     //这四行代码是对字符进行交换

}

puts(string);    //输出修改后的字符串


需要注意的是string[length - i - 1]里的减1,如果漏掉了顺序就会错了。