面试题:编程实现将字符串的各个单词翻转

这道面试题要求编程实现一个功能,将输入字符串中的每个单词进行翻转,但保持单词间的顺序不变。例如,'Hello World' 翻转后应为 'olleH dlroW'。这个问题涉及到字符串处理和算法设计。
摘要由CSDN通过智能技术生成

面试题:编程实现将字符串的各个单词翻转

#include <stdio.h>

void wordreverse(char *str)
{
	char *start=str;
	char *end=str;
	char *ptr=str;
	char t;

	if(str==NULL)
	{
		return ;
	}
	
	while(*ptr++ != '\0')
	{	
		if(*ptr == ' ' || *ptr == '\0') //找到一个单词
		{
			end=ptr-1;
			while(start<end) //将单词反转
			{
				t = *start;
				*start = *end;
				*end = t;
				start++;
				end--; 
			}
			start=end=ptr+1; //指向下一个单词
		}
	}

	start = str;
	end = ptr-2; //指向最后一个字母
	while(start<end) //将整个字符串反转
	{
		t = *start;
		*start = *end;
		*end = t;
		start++;
		end--; 
	}
}


void main()
{
	char str[] = "I am from Beijing";
	printf("%s\n", str);
	wordreverse(str);
	printf("%s\n", str);
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值