#i
#include<stdioh>
#include<stringh>//使用字符串函数时头文件
int str(char a[20],char b[20])//定义两个字符型数组
{
int i,j,k;
j=strlen(a);//测试字符串长度;
i=0;
k=j-1;
while(i<j)
{
b[k]=a<i>;//互换值;
i++;
k--;
}
return 0;
}
int main()
{
char c[20];
char d[20];
int i,l;
//gets(c);//输入字符串;
scanf("%s",c);//另一种方式;如果输入的是字符串,则不需要加地址符,因为在c语言中数组名代表该数组的起始地址;
l=strlen(c);//测试字符串长度;
str(c,d);//调用函数;
for(i=0;i<l;i++)
{
printf("%c",d<i>);//输出数值;
}printf("\n");
printf("%s",d);//直接输出字符串,此时输出的是字符数组名,而不是数组元素名;
return 0;
}
输入
一行字符
输出
逆序后的字符串
样例输入
123456abcdef
样例输出
fedcba654321
扩展资料:
scanf用法:
输出的值只是空格前面的字符是因为scanf函数的输入格式错误,输入参数的变量前需要加&。
scanf("%s",s);改为scanf("%s",&s);
scanf的用法是:scanf("格式控制字符串",输入参数一,输入参数二);
格式控制字符串包含:格式控制说明,普通字符。
1、格式控制字符串表示输入的格式,(int型用%d,float用%f,double型用%lf)
2、普通字符:在输出数据的时候,按照原样输出的字符,如:"fahr=%d,celsius=%d\n"中的fahr=,celsius=。
3、输入的参数是变量的地址,所以要在变量前面加&。
#include <stdioh>
void fa(int i);
void fb(int i);
int main(int argc, char argv) {
fa('a');
printf("\n");
fb('z');
printf("\n");
return 0;
}
void fa(int i) {
if(i <= 'z') {
printf("%c ", i);
fa(i+1);
}
}
void fb(int i) {
if(i >= 'a') {
printf("%c ", i);
fb(i-1);
}
}
题目的大致程序是这样的。用递归来写程序,首先要注意,什么是递归,如何写递归。
递归就是函数自己直接或间接的调用自身,写递归一定要注意程序的出口。恩,刚学递归是会感觉递归有点难的,如果没明白在联系我吧
"for(i=0,j=strlen(str);i<(strlen(str)/2;i++,j--)这个地方解释下 ~~ i<(strlen(str)/2;i++,j--)的意思"
i<(strlen(str)/2 //限定i的范围是字符串长度的一半,作为循环的退出条件
i++,j--) // i++ 是循环的一部分,这个你应该能理解,j--为的是跟++i 对称起来,这是为了达到 字符串反序排列 的效果,j是从最后一位开始减的,也就是字符串的长度
str[i]=str[j-1];这里为什么j-1???
假如你这个字符串的长度是 6, 那么j一开始是6,
数组长度是6,那么最后一个数组元素是 a[5],因为是从a[0]开始的
a[0]是第一个
a[5]是第6个,
#include<stdioh>
#include<stringh>
#define MAX_STRING_SIZE 100
void oderString(char str); //按照反序排列字符串函数
int main()
{
char str[MAX_STRING_SIZE];
printf("请输入一个长度不超过%d的字符串:",MAX_STRING_SIZE);
scanf("%s",str);
orderString(str);
printf("反序后的字符串:%s",str);
}
void orderString(char str[])
{
int len=strlen(str)-1;
int i=0;
char temp;
while(i<=len)
{
temp=str[len];
str[len]=str[i];
str[i]=temp;
i++;
len--;
}
}
#include "stringh"
//s是以0结尾的字符数组
void reverse(chars)
{
char c;
int i, len;
len = strlen(s);
for(i=0; i < len/2; i++)
{
c=s[i];
s[i] = s[len-i-1];
s[len-i-1]=c;
}
}
C语言程序如下:
#include<stdioh>
#include<stringh>
main()
{
int i,j,t,n;
char a[10];
printf("请输入字符串:");
gets(a);
n=strlen(a);
for(i=0;i<=n/2;i++)
{
t=a[i];
a[i]=a[n-1-i];
a[n-1-i]=t;
}
for(j=0;j<n;j++)
printf("%c",a[j]);
printf("\n");
}
扩展资料:
字符串倒序输出的五种方法
1、使用数组循环
2、StringBuffer的reverse方法
3、StringBuffer的循环
4、栈的后进先出
5、迭代完成
以上就是关于C语言编程,写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串,,求下面程序解释全部的内容,包括:C语言编程,写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串,,求下面程序解释、C语言编程:用递归法做,输出26个字母表的正序与反序。、c语言如何将字符串反序排列等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)