C的字符串编程题。。

来源:百度知道 编辑:UC知道 时间:2024/09/21 03:26:13
任意输入一个长度不超过20的字符串,并将改字符串数组中逆置后输出。比如:abcdefg,输出gfedcba.
书上的源程序代码如下:
#include "stdio.h"
#include"string.h"
void main()
{
char s[20],ch;
int len,i,j;
printf("Input: ");
gets(s);
len=strlen(s);
for(i=0,j=len-1;i<=j;i++,j--);
{
ch=s[i];
s[i]=s[j];
s[j]=ch;
}
printf("Output: ");
puts(s);
}
书上include"string.h"都没有,还自己添呢,拿着本书学习有挑战性。呵呵。源程序运行不出那种效果。
还有一种源代码如下:
#include "stdio.h"
#include"string.h"
void main()
{
char s[20],ch;
int len,i;
printf("Input: ");
gets(s);
len=strlen(s);
for(i=0;i<len/2;i++);
{
ch=s[i];
s[i]=s[len-i-1];
s[len-i-1]=ch;
}
printf("Output: ");
puts(s);
}
两种都运行不出。。。。

我也是新手,才学C的,呵呵,这个比较简单,可以运行的,你参考一下吧。
#include <stdio.h>
#include <string.h>
void main()
{
int i,x; /*定义x为字符串长度*/
char s[20];
printf("Input!\n");
gets(s); /*输入字符串*/
x=strlen(s); /*计算字符串长度*/
printf("Output!\n");
for (i=x-1;i>=0;i--)/*从长度减1开始循环到0位置,输出单个字符*/
{
printf("%c",s[i]);
}
printf("\n");
}