C语言逆置字符串内容(包括内部单词逆置)

简单逆置一个字符串内容

#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

附图:

猜你喜欢

转载自blog.csdn.net/weixin_46078890/article/details/106579813
今日推荐