分享

奇数字符右移

 融水公子 2019-07-11

讲解对象:奇数字符右移

作者:融水公子 rsgz


要求:

函数fun的功能是 把形参s所指字符串中下标为奇数的字符串右移到下一个奇数位置

最右边移出的字符绕回放在第一个奇数位置 下标为偶数的字符不动(要求是字符串的长度>=2)

实例   s所指的字符串abcd  adcb

#include<stdio.h>

#include<stdlib.h>

#define N 81

void fun(char *s) {

int i, n = 0, k;

char c;

for (i = 0; s[i] != '\0'; i++) {

n++;//统计字符串的长度(换成正常的计数)

}

if (n % 2 == 0) {

k = n - 1;//n为偶数的时候  把某个数的值赋值给k 1234

}

else {

k = n-2;//字符串为奇数的时候 将n赋值给k  12345

}

//为什么字符串个数为奇数偶数的时候要分开处理

c = s[k];//将某个值赋值给c

for (i = k - 2; i >= 1; i -= 2) {

s[i + 2] = s[i];//奇数位置字符的移位

}

s[1] = c;

}

int main() {

char s[80] = "abcd";

printf("原来的字符串是:%s\n", s);

fun(s);

printf("移动后:%s\n", s);

system("pause");

return 0;

}

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多