编写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符。可以设置一个中间值,让两端的字符相交换,然后前头的向后移动一位,后头的向前移动一位。当前头的变量大于中间值时。程序停止执行。
成都创新互联是一家企业级云计算解决方案提供商,超15年IDC数据中心运营经验。主营GPU显卡服务器,站群服务器,绵阳服务器托管,海外高防服务器,大带宽服务器,动态拨号VPS,海外云手机,海外云服务器,海外服务器租用托管等。
1 输入字符串;2 调用函数进行翻转,可以通过将对称位置字符交换值实现;3 输出结果。
i 10; ++i){ printf(%c, *(p+i)); //正向输出 } printf(\n);for(--i; 0 = i; --i){ printf(%c, *(p+i)); //逆向输出 } printf(\n);return 0;} 希望你输入十个字符。
你的go 函数 里有 return k; 在最后的pfintf里执行完go函数的时候 k=-1(跳出循环执行return k;)被输出 了。
char name[]){ int i,n;char *p char b[20];n=strlen(name);for(i=0;in;i++)b[i]=name[n-1-i];strcpy(name,b);//p=b;//局部变量b是放堆栈的,函数返回后其内存被系统回收。
后的语句改写成 a = yuan( a ); 然后输出。告诉你这也样行不同的,只因为接下来的第二点。第二,你的yuan函数设计有问题。你犯了一个初学者很容犯的错误试图从被调用函数中返回一个数组(或指针)的值。
在int i,j;后加一句for(n=0;a[n]!=\0n++);。把for(i=n,...改成for(i=n-1,...。在for(i=0;b[i]!=\0i++)前加一句b[j]=\0。
for(i=5;i=0;i--)printf(%d ,数组名【i】);输入的话,要看你是一个一个输入,还是一次性输入了。输出上面那个就可以了。
反序字符串,只需要将首尾字符依次调换即可。
参数是调用者传递给被调用者的一些信息,可以是一个或者多个,也可以没有。而返回值是被调用者给调用者的信息,可以是一个,或者没有,不能是多个。
再执行putchar ( *str )即输出倒数第二个字符,类推...这里要注意的是,函数change里先调用 change ( str + 1 ) 得到返回值才执行下一句: putchar ( *str )。