C语言编程,写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串,,求下面程序解释

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

#include
#include
void input(char st[]);//定义输入函数
void reverse(char st[]);//定义反序函数
int main()
{
char s[20];
input(s);//调用输入函数
printf("Original string: %s
", s);//输出原字符串
reverse(s);//调用反序函数
printf("New string: %s
", s);//输出反序后的字符串
return 0;
}
void input(char st[])
{
printf("Please enter string: ");
gets(st);
}
//反序函数
void reverse(char st[])
{
int n=strlen(st);
for (int i=0, j=n-1, t; i<(n/2); t=st[i], st[i]=st[j], st[j]=t, i++, j--);
}

扩展资料:gets()用法:
1、gets() 函数是从键盘输入字符串,该函数只有一个参数。参数类型为 char* 型,即 str 可以是一个字符指针变量名,也可以是一个字符数组名。打开编辑器,新建一个c语言文件,引入标准库并新建主函数:

2、gets() 函数的功能是从输入缓冲区中读取一个字符串存储到字符指针变量 str 所指向的内存空间,这里的程序是用gets函数输入字符串,可以看到不像scanf那样需要使用%号,gets函数中直接传入字符串即可:

3、最后运行下程序,输入“i love you”,可以看到gets函数可以直接输出空格,而scanf函数输出空格则需要使用转义字符实现,因此gets函数的使用要比scanf简洁的多。以上就是gets函数使用方法的演示:

修改如下:

//---------------------------------------------------------------------------
#include
#include
void convert(char b[],char m[])
{int i,n;
n=strlen(b);
for(i=0,n--;n>=0;n--,i++)
m[i]=b[n];
}
void main()
{
int i;
char a[100],b[100]={0};
scanf("%s",&a);
convert(a,b);

printf("%s",b);
}


//---------------------------------------------------------------------------

#include<stdio.h>
#include<string.h>
void printit(char *str,int length) //返序输出函数
{

int i;
for(i=length-1;i>=0;i--) //从给定的字符串的最后一位依次向前遍历各字符
putchar(*(str+i)); //每向前一个字符即打印该字符,直至第一个字符为止。
}
int main()
{ char str[80]=""; //定义一个长度为80字节的字符串数组,并初始化
gets(str); //从键盘中输入一个字符串(遇回车键结束)
printit(str,strlen(str)); //调用上面定义的函数反序输出字符串
printf("\n"); //输入一个回车换行符,使后续输出能另起一行
return 0;
}

是这样的
你的printit 函数 接受两个参数 一个是字符串 一个是字符串的长度

int main()
{
char str[80]="";
gets(str); //输入字符串
printit(str,strlen(str));// 调用函数 str 是你输入的字符串 strlen(str)是获取str字符串的长度
printf("\n");//输出修改后的字符串
return 0;

}
//然后
//printit函数 作用是修改字符串
void printit(char *str,int length)
{
int i;
for(i=length-1;i>=0;i--) //i=length-1 代表指向你的字符串的最后一位 然后下一次循环i--说明
//指向字符串的倒数第二位,以此类推

putchar(*(str+i)); //这个是输出当前指向的字符串的那一位的值
}

#include<stdio.h>
#include<string.h>
void printit(char *str,int length)\\反序输出字符串
{
int i;
for(i=length-1;i>=0;i--)\\循环,反序计数
putchar(*(str+i));\\输出第i个字符
}
int main()
{ char str[80]="";\\定义字符数组
gets(str);\\重输入流中获取输入的字符串存入到str数组中
printit(str,strlen(str));\\传入实参,字符串和字符串长度
printf("\n");\\打印换行符
return 0;
}

#include<stdio.h> //引用标准输入输出
#include<string.h> //引用string
void printit(char *str,int length)
{
int i;
for(i=length-1;i>=0;i--) //从字符串最后一个字符开始取数,取到第一个
putchar(*(str+i));
}
int main() //程序入口
{ char str[80]=""; //声明字符串
gets(str);//输入字符串
printit(str,strlen(str));//输出反序
printf("\n");//输出回车
return 0;
}

这题目我前几天才作的
#include
using namespace std;
int main()
{ const int n=5;//这里是5个数,具体有你定
int a[n],i,temp;
cout<<"enter array a:"<<endl;
for (i=0;i<n;i++)
cin>>a[i];
cout<<"array a:"<<endl;
for (i=0;i<n;i++)
cout<<a[i]<<" ";
for (i=0;i<n/2;i++)
{ temp=a[i];
a[i]=a[n-i-1];
a[n-i-1]=temp;
}
cout<<endl<<"Now,array a:"<<endl;
for (i=0;i<n;i++)
cout<<a[i]<<" ";
cout<<endl;
return 0;
}

c语言:定义一个函数,使我们输入一个数,然后再输出同样的数。_百度知...
答:输入数字的函数一般不会这样写的,另外在主函数中也没有调用你的函数,需要修改。在手机上用易历知食软件里的微C程序设计来演示修正后的代码,供参考。手机上代码如下图:手机上运行效果如下图:

C语言编程题:编写一个函数,用于求两个数中的较小数;用主函数调用这个函...
答:代码如下:include <stdio.h>int comp(int a, int b){ return (a < b) ? a : b;}int main(void){ int a, b; scanf("%d%d", &a, &b); printf("%d\n", comp(a, b)); return 0;}

写一个函数,输入一个十六进制的数,输出相应的十进制数。用c语言编程...
答:include<stdio.h> include<math.h> include<string.h> int main(){ char a[10];void convert(char a[]);printf("请输入十六进制数:");gets(a);//输入十六进制数 convert(a);return 0;} void convert(char a[]){ int n,i,num=0;n=strlen(a);for(i=n-1;i>=0;i--){ if(a>...

C语言怎么设计一个函数使输入某个值时强制结束程序??
答:1.引入头文件#include "stdafx.h"和#include "stdio.h"。2.写出主函数void main(){},在函数体内写出如下代码:int number = 0; while(true) { printf("请输入数字:\n"); scanf ("%d",&number); if (number == 1) { return; } } 3.点击红叹号测试。程序清单:// 停止...

用c语言写一个函数,输入16进制,输出相对应的10进制
答:for (int i = 0; i < n; i++) y += char2int(x[i]) * pow(16.0, n - i - 1); return y;}void main(){ char a[N]; puts("输入一个十六进制数(只能含有0-9,a-f,A-F):"); scanf("%s", a); int b = change(a, strlen(a)); printf("...

C语言编程题目:写一函数,将输入的一个五进制数,转化成相应的十进制数...
答:main(){ char *p,s[6];int n;p=s;gets(p);n=0;while(*(p)!='\0'){n=n*5+*p-'0';p++;} printf("%d",n);}

在C语言中,怎样定义一个函数,使得任意输入一个整数,若为正数,则输出...
答:void Positive(int m){ int m,n;printf("请输入一个整数:\n");scanf("%d",&m);if(m>0)printf("这个整数为:%d",m);else Positive(n);} 主要用了递归的思想,随手写的,应该可以运行,不行的话追问。

C语言 写一个函数 输入一个十六进制数 输出相应的十进制
答:include<string.h> include<math.h> / 函数:convert 功能:十六进制转十进制 / void conver(char arr[]){ int i,j=0,k=0,sum=0,n=strlen(arr);int num[100];for(i=0;i<n;i++){ switch(arr){ case'A':num[j++]=10;break;case'B':num[j++]=11;break;case'C':num[j++]...

c语言编程,写一个判断素数的函数,在主函数输入一个整数,输出是否素数...
答://你的程序中break之后,return不会执行 } } if(i == x) return 1;//如果是质数返回1 }可能是初学者吧 思路基本上是正确的 但是可能一些语法还没掌握 比如 1.函数的返回值 2.for循环中break;3.以及局部变量、全局变量作用域等 只要有耐心,c不难的,肯定能学好 ...

c语言编程 写一个函数,输入一行字符,将此字符串中最长的单词输出.用...
答:include "ctype.h"main(){ char str[50];char str1[50][20];char str2[20];int i,j,t;gets(str);j=0,t=0;for(i=0;str[i];i++) /*提取字符串中的单词,但是输入时每个单词之间只允许*/ { /*有一个字符如空格,逗号只有句末才能用句号*/ if(isalnum(str[i])){ str...