C语言问题 就是把字符串中的内容逆置 比如 输入abcd 输出dcba

大家看看我的编程哪错了
#include<string.h>
#include<conio.h>
#include<stdio.h>
#define N 100
void main()
{
char *str;
char ch;
int i;
printf("输入啊:");
scanf("%s",&str);
for(i=0;i<N/2;i++)
{
ch=str[i];
str[i]=str[N-i-1];
str[N-i-1]=ch;
}
for(i=0;i<N;i++)
{
printf("%s",str[i]);
}
}

你好!!!
修改如下:#include<string.h>
#include<conio.h>
#include<stdio.h>

void main()
{
char str[100];
char ch;
int i,k;
printf("输入啊:");
scanf("%s",str);//用数组
k=strlen(str);//求字符串的长度
for(i=0;i<k/2;i++)
{
ch=str[i];
str[i]=str[k-i-1];
str[k-i-1]=ch;
}

printf("%s\n",str);//不要用循环了,那样效率不高
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-08-20
我同意楼上说的,你这个代码读入字符串都不对。
应该是 char str[N];
scanf("%s",str);
int len=strlen(str);
for(i=0;i<len/2;i++)
然后像你那样写的应该可以的。
第2个回答  2010-08-20
scanf("%s",&str);这句不对的啊
另外你根本就不知道字符串的长度的啊,怎么用N啊,那你每次必须输入100个啊,程序问题太多,好好改啊
第3个回答  2010-08-20
#include "stdio.h"
#include "string.h"
main()
{
char s[300];
char s1[300];
printf("请输入法字符串:");
scanf("%s",s);
int n=strlen(s);
for(int i=0;i<n;i++)
{
s1[i]=s[n-i-1];
}
s1[n]='\0';
printf("%s\n",s1);
}
相似回答