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