『壹』 c語言把單詞順序倒置 比如see you later 編程later you see 我這個怎麼不行
你的思路不對啊,這樣的話太繁瑣的過程了,你先把字元串全部逆序,然後遇到空格再把一個單詞逆序,雖然可以達到目的,但是明顯,重復勞動了呀。
建議思路:
一個字元串,直接根據空格、逗號、句號直接對字元串進行切割。切割成單個單個的單詞,比如單詞A,B,C。如果從字元串的尾部開始切割,那麼直接將這些單詞保存到一個字元串里就行了。
函數建議:strrchr()函數
『貳』 C語言每個句子的每一個單詞 倒置
給出一個句子,把每一個字母倒置,但不改變單詞的順序。
輸入:
這個題有多個CASE。第一行給出一個正整數N(N<500),然後緊接著一個空行,再緊接著N個數據塊,。每一個數據塊,包括一個正整數T與T行英語句子。句子總長不超過300。每兩個數據塊之間有一個空行。每個句子只包含大寫字母與小寫字母。
輸出:
對於每個數據塊 一行一句輸出。每兩個數據塊之間用一個空行分隔。
輸入樣例:
1
3
I am happy today
To be or not to be
I want to win the practice contest
輸出樣例:
I ma yppah yadot
oT eb ro ton ot eb
I tnaw ot niw eht ecitcarp tsetnoc
『叄』 c語言中,如何輸入任意一串英文字母,然後按字母相反順序輸出這一串字母
#include <string.h>
#include <stdio.h>
int main(void)
{
char ch[100];/*假設字元串最長100個字元*/
printf("請輸入字元串\n");
gets(ch);//可以實現輸入空格
int len= strlen(ch);/*求字元串長度*/
for (int i=len;i>=0;i--)
printf("%c", ch[i]);
printf("\n");
}
『肆』 c語言 將一個輸入的字元串的內容顛倒後輸出
可以直接使用庫函數strrev(), 需要包含頭文件string.h
#include<stdio.h>
#include<string.h>
intmain()
{
charbuf[1024];
scanf("%s",buf);
strrev(buf);
printf("%s ",buf);
return0;
}
strrev不是C語言的函數,自己用指針來實現也非常簡單。
char *_strrev(char *str)
{
char *f = str, *l = str + strlen(str), ch;
while(f<l) {ch = *f; *f++ = *(--l); *l = ch;}
return str;
}
wchar_t *_wcsrev(wchar_t *wcs)
{
wchar_t *f = wcs, *l = wcs + wcslen(wcs), ch;
while(f<l) {ch = *f; *f++ = *(--l); *l = ch;}
return wcs;
}
對於多字元的漢字的調換次序,要想得到正確的結果,必須先將多字元轉換為寬字元,調換次序後再轉化為多字元。
『伍』 C語言,利用指針實現由鍵盤任意輸入一串字元,將此字元串倒置。
太復雜了,看不懂你想做什麼。
#include<stdio.h>
intmain()
{
charx[80],temp[80];
char*p,*q;
gets(x);
for(p=x;*p!='