就一题,编写函数实现字符串的反转,老师给了头尾,让你填中间一段,高手帮忙~

作者&投稿:偶霍 (若有异议请与网页底部的电邮联系)
就一题,编写函数实现字符串的反转,老师给了头尾,让你填中间一段,高手帮忙啊~~

OK,帮你写好了,希望能帮到你
#include
#include

char* reverse(const char* s)
{
assert(s != NULL);
int j,i=0;
char*p = (char*)s;
char temp;
while(*s !='\0')
{
i++;
s++;
}

for(j=0; j<i/2; j++)
{
temp = p[j];
p[j] = p[i-j-1];
p[i-j-1] = temp;
}
return p;
}

int main()
{
char s[]="ABC";

reverse(s);
printf("s:%s
",s);

return 0;
}

char* reverse(const char* s) //*s是const
reverse(s); //没有使用返回值,那就只能操作s了 而*s是const
printf("s:%s
",s); //这里也说明是操作s了
所以你老师出这个题有问题

把函数参数的const去掉:
#include
#include
char* reverse(char* s)
{
int len=0;
int i;
char c;
char* ps=s;
while(*s)
{
len++;
s++;
}
for(i=0;i<len/2;i++)
{
c=ps[i];
ps[i]=ps[len-i-1];
ps[len-i-1]=c;
}
return ps;
}

int main()
{char s[]="ABC";

reverse(s);
printf("s:%s
",s);

return 0;
}

char* reverse(const char* s)
{
    int l=0; char *t=s, *h=s,c;
    while(*t++);
    t--;
    while(h!=t){
       c=*t; *t=*h; *h=c;
       h++; t--;
    }
}



编写函数int fun(int *a,int n),实现把数组a中最大数和最小数交换 完整...
代码如下:include <stdio.h>#include <stdlib.h>#define N 10int fun(int *a, int n){int j, temp;int *max = a, *min = a;for (j = 0; j < 10; j++) {if (*max < *(a + j))max = (a + j);if (*min > *(a + j))min = (a + j);}temp = *max;*max...

1、有一分段函数如下,请编写程序,输入x值,输出y值。 当x<=-1 y=sinx...
include<stdio.h> include<cmath> int main(){ float x,y;scanf("%f",&x);if (x<=-1){ y=3*sqrt(-x+2)+1;printf("%.5f",y);} else if (x>=10){ y=sqrt((x+1)\/(2*x*x));printf("%f",y);} else{ y=pow(x,5)+1;printf("%.0f",y);} } ...

编程题: 编写函数stringlen(char *s)实现求字符串的长度。
int stringlen(char *s)\/\/ 这个函数的命名可以规范些,如 StringLen[推荐]{ int i = -1;if (s==null) return i;\/\/ 如果s为空,则返回-1 for (i=0;s[i] != '\\0';i++);\/\/ 一直找到字符串结束标志'\\0',循环结束 return i-1;\/\/ 返回不包括字符串结束标志的长度 } \/\/ 要...

C语言程序题: 1、编写一个求n!的函数fact(n),要求fact函数分别用递归...
1。include "stdio.h"\/\/#define RECURSION 1 ifdef RECURSION long fact(int n){ if(n<1) return 1;return n*fact(n-1);} else long fact(int n){ long t=1;for(int i=2;i<=n;i++)t*=i;return t;} endif main(){ long s=0;for(int i=1;i<=10;i++)s+=fact(i);p...

C语言题目:编写函数strcopy,实现把字符串s1复制到s2。
include<stdio.h> main(){ void strcopy(char *,char *);char s1[20]="abc";char s2[10]="def***";strcopy(s1,s2);printf("%s",s1);} void strcopy(char *s1,char *s2)\/*s1是接受字符串的内存的起始地址,s2是被复制字串起始地址*\/ { for ( ; *s2; ++s2,++s1)\/*从第一个...

c语言数组的一个编程题,求帮助
以下是实现题目要求的函数`search`和调用示例:```c++ include <iostream> using namespace std;int search(int a[], int n) { for(int i = 0; i < n; i++) { if(a[i] % 7 == 0) { return i + 1; \/\/ 找到了,返回下标加1 } } return -1; \/\/ 没找到,返回-1 } int...

编写一个解“一百元买鸡”问题的自定义函数:int f(int M, int N)
0;} int f( int M, int N ){ int i,j,flag;if( M <= 0 || N <= 0 ) return -1;flag = 0;for(i=1;i<100\/M;i++){ for(j=1;j*N+i*M<100;j++){ if( j*N+i*M == 100){ flag ++;cout<<"公鸡:"<<i<<" 母鸡:"<<j<<endl;} } } return flag;} ...

VB编程题:编写一个产生1 至100之间的随机整数的Function 过程_百度...
因此要产生1~100之间的随机数,可以使用Rnd*98,产生的是[0,98)的随机数,而int(Rnd*98)产生的是[0,97]之间的随机整数,那么int(Rnd*98)+2产生的就是[2,99]之间的随机整数了,符合目标1到100之间的随机数目的。函数代码如下:Public Function sj() As Integer Randomize sj = Int(Rnd * 98...

C语言题:编写判断一个数是否是素数的函数prime(n),然后在主函数里调用...
include <stdio.h> int prime(int a);void main(void){ int InputNumber;int ReturnNumber;printf("Please input a number:");scanf("%d",&InputNumber);ReturnNumber = prime(InputNumber);if(ReturnNumber == 0)printf("The number is a prime\\n");else if(ReturnNumber == 1)printf("...

...使前面各数顺序循环移动m 个位置(m<n),编写一个函数实现以上...
scanf("%d",&a);printf("new array:\\n");exchange(a,n,m);for(i=0;i<n;i++)printf("%d",a);return 0;} void exchange(int*a,int n,int m){ int i,j,temp;for(i=0;i<=m;++i){ temp=a[0];for(j=0;j<n-1;++j)a[j]=a[j+1];a[n-1]=temp;} } ...

全椒县13681712781: 编写一个函数,输入一个字符串,反向输出字符串.急 -
察潘蛇胆: #include "stdio.h" #include "string.h" int main(void) {char s[80];gets(s);strrev(s);puts(s);return 0; }

全椒县13681712781: C语言填空编程题:编写函数reverse,实现将一个字符串逆置?
察潘蛇胆: 这个主程序定义的字符串不可以被reverse改写,应该是有问题 但这不影响reverse写对: char *y,c; y=x; while ( *y ) y++; y--; while ( y>x ) { c=*y;*y=*x;*x=c; y--; x++; }

全椒县13681712781: 写一个字符串翻转功能的函数. -
察潘蛇胆: var rain = "c,s,s,r,a,i,n";<br>function rel(str){<br> s = str.split(',');<br> alert(s);<br> for(var i=0; i<s.length/2; i++){<br> var temp = s[i];<br> s[i] = s[s.length - i - 1];<br> s[s.length - i - 1] = temp;<br> }<br> alert(s);<br> }<br>rel(rain);//调用函数

全椒县13681712781: 就一题,编写函数实现字符串的反转,老师给了头尾,让你填中间一段,高手帮忙~ -
察潘蛇胆: 参考:#include#include#define N 10convert(char str[N]){ int i,j; char t; for(i=0;i<strlen(str...

全椒县13681712781: c语言编程 从键盘上输入一个字符串通过函数调用的方法使该字符串翻转 并输出这个翻转后的字符串 -
察潘蛇胆: 1 输入字符串; 2 调用函数进行翻转,可以通过将对称位置字符交换值实现; 3 输出结果. 代码如下: void revers(char *s) {char *p=s,c;while(*p)p++;p--;while(p>s){c = *p;*p = *s;*s = c;} }int main() {char s[100];scanf("%s",s);revers(s);printf("%s",s); }

全椒县13681712781: 就一题,编写函数实现字符串的反转,老师给了头尾,让你填中间一段,高手们帮忙啊~ -
察潘蛇胆: char* reverse(const char* s) //*s是const reverse(s); //没有使用返回值,那就只能操作s了 而*s是const printf("s:%s\n",s); //这里也说明是操作s了 所以你老师出这个题有问题 把函数参数的const去掉:#include<stdio.h>#include<assert.h> char* ...

全椒县13681712781: 用c++编写个函数实现字符串的逆向输出… -
察潘蛇胆: #include <iostream.h> #include <string.h> #define LENGTH 80//反序一个字符串 void reverse(char s[]) {char c;int i,j;j = strlen(s) - 1;for(i = 0;i < j;i ++){c = s[i];s[i] = s[j];s[j] = c;j --;} } void output(char s[]) { cout<<"The string is reversed:"<<s...

全椒县13681712781: 编制函数void Reverse(char ch[]),用于完成字符串的反转. -
察潘蛇胆: void Reverse(char ch[]) {int n,k,i=0;char* str;if(!ch)return ;n=strlen(ch); //获取字符串长度if(n<=0)return;str=(char*)malloc(strlen(ch)+1);//多分配一个字节写终止符k=n-1; while(ch[i]!='\0'&&i<n){str[k--]=ch[i++]; //将ch的字符逐个拷贝到str中}strcpy(ch,str);free(str); }

全椒县13681712781: 定义将一个字符串反转的函数,例如将字符abcd反转为dcba -
察潘蛇胆: char * mystrrev ( char * string ) { char *start = string; char *left = string; char ch; while (*string++) /* find end of string */ ; string -= 2; while (left < string) { ch = *left; *left++ = *string; *string-- = ch; } return(start); }/////////////////cabs. vc字符串逆转#include <...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网