C语言,输入一个字符串,逆序排列后输出
void main()
{char ch,s1[100],s2[100];
int i,j,n;
gets(s1);
(缺少的语句)
for (i=0,j=n-1;i<n;i++,j--)
s2[j]=s1[i];
puts(s2);
}
请在(缺少的语句)部分补充谢谢!
我补充的是n=strlen(s1);但是执行的时候结果总是带一串这个fjdfhjkhgd 不知道为啥? 展开
可以参考下面的代码:
#include "stdio.h"
main()
{
char strA[200];
char Temp;
int i=0,Length=0;
clrscr();
printf("请输入一个字符串:");
gets(strA);
Temp=strA[0];
while(Temp!='\0'){
Length++;
Temp=strA[i++];
}
Length--;
for(i=0;i<Length/2;i++){
Temp=strA[i];
strA[i]=strA[Length-i-1];
strA[Length-i-1]=Temp;
}
puts(strA);
getch();
}
扩展资料:
C语言参考函数:
atof(将字符串转换成浮点型数)
atoi(将字符串转换成整型数)
atol(将字符串转换成长整型数)
strtod(将字符串转换成浮点数)
strtol(将字符串转换成长整型数)
strtoul(将字符串转换成无符号长整型数)
toascii(将整型数转换成合法的ASCII 码字符)
注意事项:
字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的,如s=“abcdefghij”,则s[1]=“a”,s[10]="j",而字符串的零位正是它的长度,如s[0]=10(※上述功能Ansistring没有。),这可以给我们提供很多方便,如高精度运算时每一位都可以转化为数字存入数组。
参考资料来源:百度百科-c语言
#include <stdio.h>
#include <string.h>
void fun(char a[])//逆序函数
{
int i,length;char t;
length=strlen(a);//统计字符串的个数
for(i=0;i<length/2;i++)
{
t=a[i];
a[i]=a[length-1-i];
a[length-1-i]=t;
}
}
viod main()
{
char a[10];
printf("input a string:");
gets(a);
puts(a);
fun(a);
puts(a);
}
//调试成zd功
代码如下:
#include <stdio.h>
#include <string.h>
void fun(char a[])//逆序函数
{
int i,length;char t;
length=strlen(a);//统计字符串的个数
for(i=0;i<length/2;i++)
{
t=a[i];
a[i]=a[length-1-i];
a[length-1-i]=t;
}
}
viod main()
{
char a[10];
printf("input a string:");
gets(a);
puts(a);
fun(a);
puts(a);
}
//调试成功
void main()
{char ch,s1[100],s2[100];
int i,j,n;
gets(s1);
n=strlen(s1);
for (i=0,j=n-1;i<n;i++,j--)
s2[j]=s1[i];
s[i]='\0'; //在这里加一句,如果不加只是字符数组,不是字符串
puts(s2);
}
和你填的一样,只是后面多加一句
推荐于2017-09-02 · 知道合伙人教育行家
定义两个字符串,一个接受输入的字符串,第二个逆序接受第一字符串,完成逆序排序。
参考代码:
#include<stdio.h>
#include<string.h>
int main()
{
char a[100],b[100];
int i,j,n;
gets(a);//输入字符串
b[n=strlen(a)]='\0';//计算字符串长度,并确定字符b的结束位置
for(i=0,j=n-1;i<n;i++)//把a逆序赋值给b
b[j--]=a[i];
puts(b);//输出s2
return 0;
}
/*
运行结果:
21324165
56142312
*/