輸入字串,逆序輸出(兩種方法)
阿新 • • 發佈:2018-12-12
問題描述
從鍵盤上輸入一組字串,實現逆序輸出。
解題思路
方法一:輸出的時候從(n-1)的資料往前依次輸出。
方法二:假設輸入n個字元,字串預設末尾補上' \0 ',將第0個字元和第(n-1)個字元交換,依次交換中間的資料
輸入的資料
H | E | L | L | O | \0 |
第1次交換後的資料
O | E | L | L | H | \0 |
第(n-1)次交換後的資料
O | L | L | E | H | \0 |
第一種方法
#include<stdio.h> #include<string.h> #define N 20 int main(int argc, const char *argv[]) { char str[N] = "\0"; int i, n; printf("Please input a String:"); gets(str); // n = sizeof(str) / sizeof(char); n = strlen(str); for(i = n-1; i >= 0; i--) putchar(str[i]); putchar('\n'); return 0; }
第二種方法
#include<stdio.h> #include<string.h> #define N 20 int main(int argc, const char *argv[]) { char str[N] = "\0"; int i, j, n,ch; printf("Please input a String:"); gets(str); n = strlen(str); //獲取字串的長度 i = 0; j = n-1; while(i < j){ ch = str[i]; str[i] = str[j]; str[j] = ch; i++; j--; } puts(str); return 0; }
結果: