C语言编程题,求编写一个函数,实现字符串逆置?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言编程题,求编写一个函数,实现字符串逆置?相关的知识,希望对你有一定的参考价值。
编写函数reverse,实现将一个字符串逆置。注意:请填写下面函数的 部分。
#include<string.h>
void reverse(char *x)
main()
char p[]="hello";
reverse(p);
puts(p);
#include <stdio.h>
#include <string.h>
void reverse(char *x)
char c;
int a=0,b=strlen(x)-1;
for(;a<b;a++,b--)
c=x[a];
x[a]=x[b];
x[b]=c;
int main()
char s1[]="",s2[]="a";
char s3[]="sd",s4[]="dfg";
reverse(s1);
reverse(s2);
reverse(s3);
reverse(s4);
printf("%s\\n%s\\n",s1,s2);
printf("%s\\n%s\\n",s3,s4);
return 0;
追问我这道题是填空题,填写函数部分。
追答整个代码都给你了,复制你需要的部分不就行了吗?复制5-12行就行了。
此外,你的main函数是有问题的,p指向了一个位于只读存储区的字符串,是不能通过p修改这个字符串的。
应将p定义成数组而不是指针。
追问题目出错了,题目改一下
#include
void reverse(char *x)
main()
char p[]="hello";
reverse(p);
puts(p);
改后就对了。改后还可以用我提供的代码。
参考技术A这个算法 你试试
追问有错,算不出来。
追答我觉得是题出的有问题,我反复试了下。
下面的代码可以。
#include "malloc.h"
#include "string.h"
void reverse(char **x)
char *tmp;
char *tTmp;
char *s;
s = *x;
int len = strlen(*x);
tTmp = tmp = (char *)malloc((len + 1) * sizeof(char));
while (*s != 0)
s++;
s--;
while (s >= *x)
*tTmp = *s;
s--;
tTmp++;
*tTmp = 0;
*x = tmp;
int _tmain(int argc, _TCHAR* argv[])
char *x = "Hello";
reverse(&x);
printf("%s", x);
return 0;
题目出错了,题目改一下
#include
void reverse(char *x)
main()
char p[]="hello";
reverse(p);
puts(p);
这样就简单了。
void reverse(char *x)
char tmp;
char *s;
s = x;
while (s != 0)
s++;
s--;
while (s >= x)
tTmp = *s;
*s = *x;
*x = tTmp;
s++;
x--;
以上是关于C语言编程题,求编写一个函数,实现字符串逆置?的主要内容,如果未能解决你的问题,请参考以下文章
求高手,c语言题目,随机输入一个数,范围100到1000.判断它是不是是6和19的倍数。最好for语