急求用c语言编写:一个字符串编写程序将其倒置,如:”abcd” 改为:”dcba”,附上注释。谢谢”

本人不会c语言,急求大神帮忙,由于本人不会,就写简单点吧,希望能附上注释。

#include <stdio.h>
int main()
{
    int i,j;
    char str[100],c;
    scanf("%s",str);    //读入字符串
    for(i=0,j=strlen(str)-1;       //i从最前面开始,j从最后面开始,数组元素进行交换
        i<j;    //当i和j碰头时就结束交换
        i++,j--)    //每交换一个,i往后移一个,j往前移一个
    {
        c=str[i];    //用临时变量保存第i个字符
        str[i]=str[j];    //第j个字符存入第i个位置
        str[j]=c;    //临时变量,即原第i个字符写入第j个位置
    }
    printf("%s",str);    //输出倒置后的字符串
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-06
#include<stdio.h>
int main()
{
char str[100];
memset(str,0,100);//将str数组元素都置为0
scanf("%s",str);//标准输入读取,读入进str中
int i = 0;
int j = strlen(str) - 1;//得出str的长度,j为最后一个字符的位置,i从前向后,j从后向前
char temp;//临时变量,用于交换两个字符
while(i<j){//依次交换两个字符
temp = str[i];
str[i] = str[j];
str[j] = temp;
++i;--j;
}
}
第2个回答  推荐于2016-06-14
程序如下
#include<stdio.h>
#include<string.h>
char str_buf[88]="abcd";
void invert_string(char *str)
{
char i, ch, len = strlen(str);

for(i=0; i<len/2; i++){
ch = *(str + i);

*(str + i) = *(str + len - i);

*(str + len - i) = ch;

}
}
int main(void)
{
printf(“请输入一个测试的字符串!");//如输入abcd
scanf("%s",str_buf);

invert_string(str_buf);
printf("倒置后的字符串为:%s\n",str_buf);//输出dcba
}本回答被提问者和网友采纳
第3个回答  2013-06-06
#include<stdio.h>
#define N 8
void main()
{
char a[N];
printf("请输入%d个数:",N/2);
for(int i=0;i<N;i++)
scanf("%c",&a[i]);
for(i=N-1;i>=0;i--)
printf("%c ",a[i]);
printf("\n");
}
相似回答