c语言 将一个输入的字符串的内容颠倒后输出

不是c++

可以直接使用库函数strrev(), 需要包含头文件string.h

#include <stdio.h>
#include <string.h>

int main()
{
    char buf[1024];
    scanf("%s", buf);
    strrev(buf);
    printf("%s\n", buf);
    return 0;
}

strrev不是C语言的函数,自己用指针来实现也非常简单。

char *_strrev(char *str)

{

char *f = str, *l = str + strlen(str), ch;

while(f<l) {ch = *f; *f++ = *(--l); *l = ch;}

return str;

}

wchar_t *_wcsrev(wchar_t *wcs)

{

wchar_t *f = wcs, *l = wcs + wcslen(wcs), ch;

while(f<l) {ch = *f; *f++ = *(--l); *l = ch;}

return wcs;

}

对于多字符的汉字的调换次序,要想得到正确的结果,必须先将多字符转换为宽字符,调换次序后再转化为多字符。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-10-27
string.h里面有现成的库strrev()
第2个回答  推荐于2018-02-26
void main()
{
char s[100];
gets(s);
int i, len = strlen(s);
for(i = len - 1; i >= 0; i--) printf("%c", s[i]);
}本回答被网友采纳
第3个回答  2008-10-26
void main()
{
char a[10];
char *i;
scanf("%s",a);
for(i=a[9];i!=a[0];i--)
{
printf("%c ",*i);
}
}
第4个回答  推荐于2016-08-24
#include "string.h"
void main()
{
char s[100];
gets(s);
int i, len = strlen(s);
for(i = len - 1; i >= 0; i--) printf("%c", s[i]);
}本回答被提问者采纳