C语言 编写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串 C语言题目写一个函数,使输入的一个字符串按反序存放,在主函数...

C\u8bed\u8a00\uff1a\u5199\u4e00\u51fd\u6570,\u4f7f\u8f93\u5165\u7684\u4e00\u4e2a\u5b57\u7b26\u4e32\u6309\u53cd\u5e8f\u5b58\u653e,\u5728\u4e3b\u51fd\u6570\u4e2d\u8f93\u5165\u8f93\u51fa\u53cd\u5e8f\u540e\u7684\u5b57\u7b26\u4e32.

#include
#include//\u4f7f\u7528\u5b57\u7b26\u4e32\u51fd\u6570\u65f6\u5934\u6587\u4ef6
int str(char a[20],char b[20])//\u5b9a\u4e49\u4e24\u4e2a\u5b57\u7b26\u578b\u6570\u7ec4
{
int i, j, k;
j=strlen(a);//\u6d4b\u8bd5\u5b57\u7b26\u4e32\u957f\u5ea6;
i=0;
k=j-1;
while(i<j)
{
b[k]=a[i];//\u4e92\u6362\u503c;
i++;
k--;
}
return 0;
}
int main()
{
char c[20];
char d[20];
int i,l;
//gets(c);//\u8f93\u5165\u5b57\u7b26\u4e32;
scanf("%s",c);
l=strlen(c);//\u6d4b\u8bd5\u5b57\u7b26\u4e32\u957f\u5ea6;
str(c,d);//\u8c03\u7528\u51fd\u6570;
for(i=0; i<l; i++)
{
printf("%c",d[i]);//\u8f93\u51fa\u6570\u503c;
}printf("\n");
printf("%s",d);//\u76f4\u63a5\u8f93\u51fa\u5b57\u7b26\u4e32,\u6b64\u65f6\u8f93\u51fa\u7684\u662f\u5b57\u7b26\u6570\u7ec4\u540d,\u800c\u4e0d\u662f\u6570\u7ec4\u5143\u7d20\u540d;
return 0;
}
\u8fd0\u884c\u6548\u679c\uff1a

\u6269\u5c55\u8d44\u6599\uff1awhile\u8bed\u53e5\u82e5\u4e00\u76f4\u6ee1\u8db3\u6761\u4ef6\uff0c\u5219\u4f1a\u4e0d\u65ad\u7684\u91cd\u590d\u4e0b\u53bb\u3002\u4f46\u6709\u65f6\uff0c\u9700\u8981\u505c\u6b62\u5faa\u73af\uff0c\u5219\u53ef\u4ee5\u7528\u4e0b\u9762\u7684\u4e09\u79cd\u65b9\u5f0f\uff1a
\u4e00\u3001\u5728while\u8bed\u53e5\u4e2d\u8bbe\u5b9a\u6761\u4ef6\u8bed\u53e5\uff0c\u6761\u4ef6\u4e0d\u6ee1\u8db3\uff0c\u5219\u5faa\u73af\u81ea\u52a8\u505c\u6b62\u3002
\u5982\uff1a\u53ea\u8f93\u51fa3\u7684\u500d\u6570\u7684\u5faa\u73af\uff1b\u53ef\u4ee5\u8bbe\u7f6e\u8303\u56f4\u4e3a\uff1a0\u523020\u3002
\u4e8c\u3001\u5728\u5faa\u73af\u7ed3\u6784\u4e2d\u52a0\u5165\u6d41\u7a0b\u63a7\u5236\u8bed\u53e5\uff0c\u53ef\u4ee5\u4f7f\u7528\u6237\u9000\u51fa\u5faa\u73af\u3002
1\u3001break\u6d41\u7a0b\u63a7\u5236\uff1a\u5f3a\u5236\u4e2d\u65ad\u8be5\u8fd0\u884c\u533a\u5185\u7684\u8bed\u53e5\uff0c\u8df3\u51fa\u8be5\u8fd0\u884c\u533a\uff0c\u7ee7\u7eed\u8fd0\u884c\u533a\u57df\u5916\u7684\u8bed\u53e5\u3002
2\u3001continue\u6d41\u7a0b\u63a7\u5236\uff1a\u4e5f\u662f\u4e2d\u65ad\u5faa\u73af\u5185\u7684\u8fd0\u884c\u64cd\u4f5c\uff0c\u5e76\u4e14\u4ece\u5934\u5f00\u59cb\u8fd0\u884c\u3002

\u53ef\u4ee5\u4f7f\u7528string.h\u6807\u51c6\u51fd\u6570\u5417\uff1f
\u53ef\u4ee5\u7684\u8bdd \u8fd9\u6837\u505a
#include #include void Reverse_string(char *str){int len = strlen(str), i;char t;for(i = 0; i <= len / 2; i ++){t = str[i];str[i] = str[len - i - 1];str[len - i - 1] = t;}}int main(){char buffer[100];gets(buffer);Reverse_string(buffer);printf("%s\n", buffer);return 0;}

这个和返回值没有关系的呀,返回值和参数是两个概念的。

参数是调用者传递给被调用者的一些信息,可以是一个或者多个,也可以没有。
而返回值是被调用者给调用者的信息,可以是一个,或者没有,不能是多个。

void daoxu(char x[],int n),这样子的写法,main函数传递给daoxu函数的是数组a和a的长度m,daoxu函数里面对数组a的更改一样会反馈到main函数里面,和daoxu函数有没有返回值完全没关系的

因为在传递参数的时候有两种方法,传值调用和传址调用,一般简单数据类型如int,float,double
等都是直接传值调用的,所以传入参数,原来的变量不会改变,但是数组类型的变量,他的值指的是该数组的首地址,首地址是不能够随意修改的,因此它将会视为传址调用,即在该数组的地址上直接改变里面的值,因此第一个函数就起作用了

void  main()
 {
   char a[MA];
   int m;
   scanf("%s",a);
   printf("%s
",a);
   m=strlen(a);
   daoxu(a,m);
   printf("%s
",a);
 }




数组作参数时,进行的是传址操作。

扩展阅读:c语言自动生成器 ... c语言搜题神器app ... c十十编程要学多久 ... c语言scanf无法输入 ... c语言编程输入x输出y ... c#编程软件手机版 ... c十十入门编程 ... c++编程 ... c语言流程图生成器手机版 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网