c语言把一个字符串翻转,C语言实现将一个字符串翻转

问题: 对于字符串char* = "  abcd   efg h";   要求输出" h efg   abcd ";   字符串整体翻转,但是里面每一个单词的顺序不翻转

思想:<1>取得原始字符串的长度,

<2>将字符串第一个出现空格位置的索引记录下来,并且放到一个整形数组里,例如上面的

出现空格的位置分别是0 5  11    那么记录数组int b[j];  b[0]=0  b[1] =5; b[2]=11;

<3>针对每一个空格开始出现的位置,将数组b[j] 逆序输出,例如

"  h"输出 "h "

"   efg"  输出"efg   "

" abcd"输出“abcd "

<4>将上面的输出用strcat拼接起来就是得到的目的字符串

代码如下:

#include #include using namespace std;

#define ARRAY_LEN 10

int main() {

char* a=" OPKI am test abcdef ";

int len = strlen(a);

cout< 0; k--) {

int tmp = b[k-1];

int i = 0;

bool flag = false;

while(a[tmp] != '\0') {

char ch = a[tmp];

if (ch != ' ') {

flag = true;

cout<0; t--) {

cout<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值