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

作者&投稿:司哪 (若有异议请与网页底部的电邮联系)
C语言: 写一函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串。~

问题很简单:你根本就没有翻转字符串!!!!
第一,你在调用char yuan(char a)后,用什么来接受它的返回值?对吧,在主函数中根本没有任何char组来接受它。你似乎可以将 gets(a);
后的语句改写成 a = yuan( a ); 然后输出。告诉你这也样行不同的,只因为接下来的第二点。
第二,你的yuan函数设计有问题。你犯了一个初学者很容犯的错误试图从被调用函数中返回一个数组(或指针)的值。要知道,被调用的函数编译后存储在堆栈当中:它在被调用时创建,结束调用时销毁。所以说,不能用它来返回数组(或指针)的值。

至此,你的提问已经解决。下面给出我的想法,
现在思考你要解决的问题:将一个字符串(或者说是字符数组)翻转。这就要求你必须为yuan函数传递个字符串参数a;然后就是翻转,但是翻转的字符串不会超出原字符串的长度,故而可设计用它自身将翻转值带出。可将翻转函数原型设计为 void yuan(char *a); 实现如下:
void yuan(char *a){
char temp;
int i;
int count;
count = strlen( a ) - 1; /*这里用count表示可用的最大下标,如当数组元素为5是,可用的最大下标应为4。明白这一点很重要,也很有意思*/
for(i = 0; i < count / 2; i++){
temp = a[i];
a[i] = a[count - i];
a[count - i] = temp;
}
}

再到这里似乎没什么话可说了,不过还是要给出几点建议:
第一,合理使用空白,是你的程序更具可读性;
第二,为设计标识符可以适当学习一下英语;
综上,在学习初期养成良好的编程风格很重要。
谨祝,
学习进步!

#include
#include
char str(char c[]);
int main()
{
char c[1000];
scanf("%s",c);
printf("%s
",str(c));
return 0;
}
char str(char c[])
{
int i,j;
char a[10000];
i=strlen(c);
strcpy(a,c);
for(j=i-1;j>=0;j--)
printf("%c",a[j]);
return 0;
}
希望可以帮到你,祝你生活愉快,这是按你要求定义一个函数做的,其实一个函数做更简单。

#include <stdio.h> 

#include <string.h>

int main()

{void inverse(char str[]);

char str[100];

printf("input string:");

scanf("%s",str);

inverse(str);

printf("inverse string:%s
",str);

return 0;

}

void inverse(char str[])

{char t;

int i,j;

for (i=0,j=strlen(str);i<(strlen(str)/2);i++,j--)

{t=str[i];

str[i]=str[j-1];

str[j-1]=t;

}

}




用c语言写一个查找给定数组a中数值的函数
第三行包含一个整数a,为待查找的数。输出格式:如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1。样例输入:6 1 9 4 8 3 9 9 样例输出 2 数据规模与约定 1 <= n <= 1000。数列(sequence of number),是以正整数集(或它的有限子集)为定义域的函数,是...

如何用c语言定义一个函数
函数是用户与程序的接口,在定义一个函数前,首先要清楚以下三个问题。1) 函数的功能实现及算法选择。算法选择会在后续文章详细讲解,本节重点关注函数的功能实现。一般选取能体现函数功能的函数名,且见名知意,如求和函数的函数名可取为 add,求最大值的函数名可取为 max,排序函数可取名为 sort 等...

c语言编写一个函数sort按照学生编号由小到大的顺序排列二维数组,两门...
数组的4种声明方式:1.先声明再初始化例如:\/\/1.声明int[] nums;\/\/初始化nums = new int[5];2.声明并初始化例如:\/\/2.声明、初始化int[] nums = new int[10];3.创建数组同时赋值例如:\/\/3.创建数组同时赋值String[] names=new String[]{"大名","小米","夏雨荷"};int[] ages=new ...

如何在C语言中定义一个函数?
需要准备的材料分别有:电脑、C语言编译器。1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。2、在test.cpp文件中,输入C语言代码:int fun(){return 1;}。3、编译器运行test.cpp文件,此时成功调用fun()函数输出了内容。

用C语言写一个调用函数,求出一个范围内的素数,范围自己输入
include<stdio.h>#include<math.h>int prime(int a,int b)\/\/求出整数a-b范围内的所有素数{int i=2,j,n;for(j=a;j<=b;j++){n=sqrt(j)+1; \/\/j的平方数+1i=2;while(i<n) { if(j%i==0)\/\/整除,退出循环break;i++;} if(i==n) \/\/非整除退出循环,i肯定等于nprin...

C语言编写一个函数,在主函数中输入一个字符串,输出小写字母的个数。
include <stdio.h>int count(char *s){ int r=0; while(*s) { if(*s>='a'&&*s<='z') r++; s++; } return r; }int main(){ char s[200]; scanf("%s",s); printf("小写字母个数为%d\\n",count(s)); return 0;} ...

C语言中怎么自己定义并调用函数?
int sum(int a, int b);int main(int argc, char* argv[]){ int x = 5, y = 7;int s = sum(x, y); \/\/调用函数 printf("x + y = %d \\n", s);system("pause");return 0;} \/\/定义求和函数 int sum(int a, int b){ return a + b;} 更多C语言教程 ...

c语言能不能在一个文件中写一个函数,然后再另一个文件中调用?
当然可以啦。举个例子吧:两个文件 main.c function.c 我们在function.c 中写一个函数 func();与此同时,我们需要写一个.h文件来声明这个函数,即function.h \/\/ 以下是function.h 的内容 ifndef __FUNCTION_H__define __FUNCTION_H__void func();endif \/\/ 以下是function.c 的内容 include...

C语言:编写一个函数,将一个字符串按逆序存放。在主函数中输入和输出字...
include <stdio.h>#include <string.h>\/\/ 反序字符串x并返回char* reverse(char *x){ int len = strlen(x); int i, n = len \/ 2; char tem; for (i = 0; i <= n; i++) { tem = x[i]; x[i] = x[len - 1 - i]; x[len - 1 - i] =...

:使用C语言写一个周长计算的函数(+)(单选题:3分)+A.int+CalcZC(float+...
以下是一个C语言的函数,可以计算矩形的周长:```c include <stdio.h> \/\/ 定义计算周长的函数 int getRectanglePerimeter(int width, int height) { int perimeter = 2 * (width + height);return perimeter;} int main() { int width = 5;int height = 8;int perimeter = getRectangle...

美溪区17631367767: C语言编程,写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符 -
军瑞高劲: 问题很简单:你根本就没有翻转字符串!!!!第一,你在调用char yuan(char a)后,用什么来接受它的返回值?对吧,在主函数中根本没有任何char组来接受它.你似乎可以将 gets(a); 后的语句改写成 a = yuan( a ); 然后输出.告诉你这也样...

美溪区17631367767: c函数●写一个函数,完成如下功能: 输入:一个字符串.其中,字符串中仅可能含有大写英文字母,即A - Z.●写一个函数,完成如下功能: 输入:一个字符... -
军瑞高劲:[答案] 供参考……#include "stdio.h"#include "string.h"void main(){ char Str[120],cx,Letter[][2]={{'A',0},{'B',0},{'C',0},{'D',0},{'E',0},{'F',0},{'G',0}, ...

美溪区17631367767: 用C语言写一个函数,使输入的字符串按反序存放,在主函数中输入和输出字符串. -
军瑞高劲: #include<stdio.h>#include<string.h> char str(char c[]); int main() { char c[1000]; scanf("%s",c); printf("%s\n",str(c)); return 0; } char str(char c[]) { int i,j; char a[10000]; i=strlen(c); strcpy(a,c); for(j=i-1;j>=0;j--) printf("%c",a[j]); return 0; } 希望可以帮到你,祝你生活愉快,这是按你要求定义一个函数做的,其实一个函数做更简单.

美溪区17631367767: C语言:写一个函数,求一个字符串的长度.在main函数中输入字符串并输出其长度 -
军瑞高劲: #include<iostream> using namespace std; int main() { int character(char *a); char a[20]; int length; cout<<"请输入一个字符串:"<<endl; cin>>a; length=character(a); cout<<"字符串长度为:"<<length<<endl; return 0; } 扩展资料: return用...

美溪区17631367767: C语言题目写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串… -
军瑞高劲: 可以使用string.h标准函数吗?可以的话 这样做#include <stdio.h>#include <string.h> 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]; ...

美溪区17631367767: C编程;写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串 -
军瑞高劲: 第二种方法: #include #include main() {int n=0,i,m; char a[200],temp; gets(a); n=strlen(a); m=(n-1)/2; for(i=0;i

美溪区17631367767: c语言编程问题(编写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串.) -
军瑞高劲: return只能返回一个值...不能返回数组,我跟你改改 #include<stdio.h> #include<string.h> void main() { int i;char a[100]; char f(char a[]); gets(a);f(a);puts(a);} char f(char a[]) { int n,i; char b[100];n=strlen(a); for(i=0;n>=0;i++,n--)b[i]=a[n]; for(i=0;i<=n;i++)a[i]=b[i]; }

美溪区17631367767: C语言中如何调用一个函数输入字符串.这个函数怎么写 -
军瑞高劲: 其实没必要定义一个函数输入字符串,只需要定义字符型数组,利用循环即可!

美溪区17631367767: C语言编写一个函数,使输入的一个字符串复制到一个字符数组中,并在主函数中输入和输出字符串 -
军瑞高劲: #include<stdio.h> #include<conio.h> char fun(char *a) { int i = 0, j = 0; char b[80]; while (a[i] != '\0' && a[i] == '*') { i++; } while (a[i] != '\0') { b[j] = a[i]; i++; j++; } i = 0; j = 0; while (b[j] != '\0') { a[i] = b[j]; i++; j++; } a[i] = '\0'; return a; } int main() { char a[80]; ...

美溪区17631367767: 编写一函数,使输入的一个字符串反序存放,并在主函数中输入、输出字符串.(C语言)
军瑞高劲: #include&lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;conio.h&gt; typedef struct LNode{ char data; struct LNode * next; }LNode, * LinkList; LinkList CreateList_L(LinkList L)/*头插法建立链表*/ { char c; LinkList p; L = (LinkList)malloc(sizeof(...

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