【C语言典例】:倒置字符串
生活随笔
收集整理的這篇文章主要介紹了
【C语言典例】:倒置字符串
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【C語言典例】:倒置字符串
文章目錄
- 【C語言典例】:倒置字符串
- 輸入描述:
- 輸出描述:
- 輸入
- 輸出
- 全部代碼
- 結束語
鏈接: https://www.nowcoder.com/questionTerminal/b0ae3d72444a40e2bb14af7d4cb856ba
來源:牛客網
將一句話的單詞進行倒置,標點不倒置。比如 I like beijing. 經過函數后變為:beijing. like I
輸入描述:
每個測試輸入包含1個測試用例: I like beijing. 輸入用例長度不超過100輸出描述:
依次輸出倒置之后的字符串,以空格分割示例1
輸入
I like beijing.輸出
beijing. like I思路分析
通過觀察得知,先對整個字符串逆序,后對字符串中每一個單詞逆序便可解決此問題。
如圖所示
注意事項
不能使用scanf,因為scanf一遇到空格就中止,可以使用gets();或者 gets_s();
gets_s()的使用
首先將字符串逆序獨立成一個逆序字符的函數
*str為字符串首地址,right為字符串中最后一個字母的下標,
void reseve(char* str, int left, int right) {while (left < right){char ch = str[left];str[left] = str[right];//交換字符串str[right] = ch;left++;right--;} }其次對字符串中的每一個單詞進行逆序
int temp = 0;//數組首元素的下標for (int i = 0; i < len + 1; i++).//遍歷字符串{if (arr[i] == ' ' || arr[i] == 0)//遇到空格或者\0就需要單詞逆序{reseve(arr, temp, i - 1);//調用逆序數組, i為空格或者\0的下標 i-1為單詞最后一個字母的下標temp = i + 1;//下一個單詞的第一個字母的下標}}全部代碼
#include<string.h> #include<stdio.h>void reseve(char* str, int left, int right) {while (left < right){char ch = str[left];str[left] = str[right];str[right] = ch;left++;right--;} }int main() {char arr[100] = { 0 };gets_s(arr,100);int len = strlen(arr);reseve(arr, 0, len - 1);int temp = 0;for (int i = 0; i < len + 1; i++){if (arr[i] == ' ' || arr[i] == 0){reseve(arr, temp, i - 1);temp = i + 1;}}printf("%s", arr);return 0; }結束語
? 上聯:世界那么大,我想去看看;下聯:錢包那么小,誰都走不了;橫批:好好上班。
總結
以上是生活随笔為你收集整理的【C语言典例】:倒置字符串的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用Java校验【统一社会信用代码】的真
- 下一篇: 检测您的CPU是否支持RemoteFX(