#include <stdio.h>
#include <string.h>
void reverse(char *a);
void main()
{
char str[100];
printf("请输入字符串:");
gets(str);
printf("字符串为:%s\n",str);
reverse(str);
printf("反转后为:");
puts(str);
}
void reverse(char *s)
{
char temp, *end = s + strlen(s) - 1;
while( end > s)
{
temp = *s;
*s = *end;
*end = temp;
--end;
++s;
}
}
比如输入 大中王
输出 跬兄蟠
谢谢各位啦 第一次上网提问 非常感谢啊
ä¸æéè¦åç¬å¤ççï¼ä¸ä¸ªä¸æå 两个åèï¼å转æ¶é¡ºåºä¸åã
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void reverse(char* s)
{
int len = strlen(s);
char* pNewStr = (char*)malloc(len + 1) ;
char* pNewMove = pNewStr;
char* pStr = s + len - 1;
while(pStr >= s)
{
unsigned char ch = *pStr;
if(ch > 127) //ä¸æå¤æ ä¸å¤ªç¡®å®ï¼è¿ä¸ªæ¡ä»¶æ¯å¦ä¸¥è°¨ï¼å¨æ¬æºæµè¯æ²¡é®é¢
{
*pNewMove = *(pStr - 1);
pNewMove ++;
*pNewMove= *pStr;
pNewMove ++;
pStr -= 2;
}else
{
*pNewMove =*pStr;
pNewMove ++;
pStr--;
}
}
pNewStr[len] = '\0';
strcpy(s,pNewStr);
free(pNewStr);
}
int main()
{
char str[201];
printf("è¾å ¥è¦å转çå符串\n");
scanf("%s",str);
reverse(str);
printf("å转åå符å为:\n %s \n",str);
system("pause");
return 0;
}