字符串逆序输出
使用工具:VS2019
功能:
1、将字符串输入到一个字符串数组
2、将这个字符串逆序输出
要求:
不使用第二个字符串数组
一、代码部分
函数实现:
//字符串逆序
void stringInversion(char* str)
{
int length = strlen(str); //字符串的有效长度
for (int i = 0; i < length / 2; i++)
{
//法1:使用额外存储空间
//char temp = str[i]; //将第一个字符放入temp
//str[i] = str[length - 1 - i]; //将最后一个字符放入第一个字符
//str[length - 1 - i] = temp; //将temp放入最后一个字符
//法2:不使用额外存储空间
str[i] ^= str[length - 1 - i]; //异或
str[length - 1 - i] ^= str[i];
str[i] ^= str[length - 1 - i];
}
}
主函数调用:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//字符串逆序
void stringInversion(char* str);
int main()
{
char str[20] = {
"" }; //初始化一个字符串数组
int str_length = sizeof(str) / sizeof(str[0]);
gets_s(str, str_length); //字符串输入
stringInversion(str); //字符串逆序的函数
puts(str); //输出结果
system("pause");
return 0;
}
二、运行结果
输入:Hello World!
应出现结果:!dlroW olleH