简单逆置一个字符串内容
#include <stdio.h>
#include <string.h>
#include<windows.h>
void Swap(char *arr)//也可以这样写"char arr[]",一般推荐前者
{
char* start = arr;//定义一个头指针指向数组首元素
char* end = arr + strlen(arr) - 1;//定义一个尾指针指向数组尾部
while (start < end)
{
char temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
}
int main()
{
char arr[100];
//注意不能使用scanf,scanf遇到空格,一次输入接收就结束了
gets_s(arr);
//char arr[100] = "abcd1234";//要是自己不想输入就直接这样写
//翻转整个句子
Swap(arr);
printf("%s", arr);
printf("\n");
system("pause");
return 0;
}
//运行环境:vs2019
附图:
延伸: 逆置一个字符串内容(包括内部单词逆置)
#include <stdio.h>
#include <string.h>
#include<windows.h>
void Swap(char* start, char* end)//定义一个头指针,一个尾指针用于交换内容
{
while (start < end)
{
char temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
}
int main()
{
char input[100];
//注意不能使用scanf,scanf遇到空格,一次输入接收就结束了
gets_s(input);
//翻转整个句子
Swap(input, input + strlen(input) - 1);
//翻转单词
char* start = input;
while (*start)
{
char* end = start;
while (*end != ' '&&*end )
{
end++;
}
Swap(start, end-1);
if (*end)
{
start = end + 1;
}
else {
start = end;
}
}
printf("%s", input);
printf("\n");
system("pause");
return 0;
}
//运行环境:vs2019
附图: