编一个函数fun(char *s),函数的功能是把字符串中的内容逆置
例子如:字符串中原有的内容为:abcdefg,则调用该函数后,串中的内容为:gfedcba。(难度:A-)2.编写一函数,实现矩阵(N行N列)的转置(即行列互换)。(难度...
例子如:字符串中原有的内容为:abcdefg,则调用该函数后,串中的内容为:gfedcba。(难度:A-)
2. 编写一函数,实现矩阵(N行N列)的转置(即行列互换)。(难度:B+) 展开
2. 编写一函数,实现矩阵(N行N列)的转置(即行列互换)。(难度:B+) 展开
1个回答
推荐于2018-03-29
展开全部
算法描述:用两个指针front和rear分别指向该字符串的第一个位置和最后一个位置,
然后交换两个位置对应内容,front往右移一位rear向左一位,再重复上述操作.
直到front>=rear(即循环条件为front<rear),
串中字符个数为奇数个则front=rear跳出循环,
偶数个时则当front>rear跳出
#include <stdio.h>
#include <conio.h>
#include <string.h>
#define N 20
void fun(char *s);
void main()
{
char s[N];
printf("请输入要逆置的字符串:");
gets(s);
fun(s);
printf("逆置后的字符串:");
puts(s);
getch();
}
void fun(char *s)
{
int front,rear,s_length;
char ch;
s_length=strlen(s);
front=0;
rear=s_length-1;
while(front<rear)
{
ch=s[front];
s[front]=s[rear];
s[rear]=ch;
front++;
rear--;
}
}
然后交换两个位置对应内容,front往右移一位rear向左一位,再重复上述操作.
直到front>=rear(即循环条件为front<rear),
串中字符个数为奇数个则front=rear跳出循环,
偶数个时则当front>rear跳出
#include <stdio.h>
#include <conio.h>
#include <string.h>
#define N 20
void fun(char *s);
void main()
{
char s[N];
printf("请输入要逆置的字符串:");
gets(s);
fun(s);
printf("逆置后的字符串:");
puts(s);
getch();
}
void fun(char *s)
{
int front,rear,s_length;
char ch;
s_length=strlen(s);
front=0;
rear=s_length-1;
while(front<rear)
{
ch=s[front];
s[front]=s[rear];
s[rear]=ch;
front++;
rear--;
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询