程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言問答 >> c語言關於 字符串倒序並輸出

c語言關於 字符串倒序並輸出

編輯:C語言問答

c語言關於 字符串倒序並輸出

第一種算法為什麼是錯的
將字符串倒過來放入另一個數組內·······
#include
#include
int main()
{
int len, i, temp;
char a[50],a1[50];

gets(a);
len = strlen(a);

for (i = 0; i < len ; i++)
{

a1[i] = a[len - i - 1];

}
for (i = 0; i < len; i++)
{
printf("%s", a1[i]);
}
return 0;
}
第二種對半然後前後交換為什麼我這樣寫又可以·····
#include
#include
int main()
{
int len, i, temp;
char a[50];

gets(a);
len = strlen(a);

for (i = 0; i < len / 2; i++)
{
temp = a[i];
a[i] = a[len - i - 1];
a[len - i - 1] = temp;
}
for (i = 0; i < len; i++)
{
printf("%c", a[i]);
}
return 0;
}
好抓狂·····

最佳回答:

樓主第一種方法輸出a1數組不是應該用printf("%c",a1[i]);麼。%s的話直接
for (i = 0; i < len ; i++) {
    a1[i] = a[len - i - 1];
}
a1[i] = '\0';//這句不要忘了
printf("%s", a1);
樓主可以這樣用一個數組自己實現倒序的
#include
#include

#define MAXLEN 50
void reverse(char *);

main()
{
    char line[MAXLEN];
    gets(line);
    reverse(line);
    printf("%s\n",line);
}

void reverse(char *s)
{
    int i, j;
    int c;

    for (i = 0,j = strlen(s) - 1; i < j; i++, j--) {
        c = s[i];
        s[i] = s[j];
        s[j] = c;
    }
}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved