只需要將字符數(shù)組的前后數(shù)據(jù)進行交換就行了。
創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務領域包括:網(wǎng)站建設、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的長寧網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!
#include?stdio.h
#include?string.h
char*?reverse(char?*x)
{
int?i,?tem,?len?=?strlen(x);
int?n?=?len?/?2;
for?(i?=?0;?i?=?n;?i++)??//?前后交換數(shù)據(jù)
{
tem?=?x[i];
x[i]?=?x[len?-?1?-?i];
x[len?-?1?-?i]?=?tem;
}
return?x;
}
int?main()
{
char?p[]?=?"abcdefghijk";
printf("relust?=?%s\n",?reverse(p));
return?0;
}
char *revstr(char *str, size_t len)
{
char *start = str;
char *end = str + len - 1;
char ch;
if (str != NULL)
{
while (start end)
{
ch = *start;
*start++ = *end;
*end-- = ch;
}
}
return str;
}
有2處錯誤,在注釋中顯示
#includestdio.h
#includestdlib.h
int main(void)
{
int n;
char *p;
puts("請輸入您要輸入字符串的字符個數(shù):");
scanf("%d",n);
//既然用char*,應統(tǒng)一,不能使用sizeof(int)
p = (char*)malloc(n*sizeof(char));
for(int i=0;in;i++)
{
scanf("%c",p[i]);//用%c接收字符
}
printf("輸出reverse后的字符串:");
for(i=n-1;i=0;i--)
{
printf("%c \t",p[i]);
}
free(p);
system("PAUSE");
return 0;
}