您好,一個漢字占用兩個字節(jié)(擴展ASCII碼),而getchar()每次只能讀入一個字節(jié),因此讀入漢字時,則需要用gets()函數(shù)。
成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供寧德網(wǎng)站建設(shè)、寧德做網(wǎng)站、寧德網(wǎng)站設(shè)計、寧德網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、寧德企業(yè)網(wǎng)站模板建站服務,10年寧德做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡服務。
倒敘輸出漢字串時,有兩種方法,一是從字符串末端開始,每次輸出兩個字節(jié),二是直接漢字將字符串在數(shù)組中倒置,然后再用puts()函數(shù)直接輸出。
以上兩種方法都有局限性,一旦含有非漢字字符,極有有可能造成亂碼。
#include stdio.h
#include string.h
unsigned char *InverseStr(unsigned char t[],unsigned char s[]) {
int i,j,len = strlen((char *)s);
for(i = len - 1,j = 0; i = 0; --i,++j) {
if(s[i] 0X7F) { // 是漢字
t[j++] = s[i - 1];
t[j] = s[i];
--i;
}
else t[j] = s[i];
}
t[j] = '\0';
return t;
}
int main() {
unsigned char s[] = "C語言char數(shù)據(jù)類型練習";
unsigned char t[25];
printf("s = \"%s\"\n",s);
printf("t = \"%s\"\n",InverseStr(t,s));
return 0;
}
反序方法見 下面 函數(shù) void op(char *s). 主函數(shù)是調(diào)用的例子。
#include stdio.h
void op(char *s){
int i,k;
char c;
k = strlen(s);
for (i=0;ik/2;i++){c=s[i];s[i]=s[k-i-1];s[k-i-1]=c;};
};
int main()
{
char s[200];
printf("input one line string:\n");
gets(s);
op(s);
printf("%s\n",s);
return 0;
}
輸入:abc123
輸出:321cba
int main()
{
char str[100], temp;
int i;
scanf("%s", str);
for (i = 0; i strlen(str) / 2; i++)
{
temp = str[strlen(str) - i - 1];
str[strlen(str) - i - 1] = str[i];
str[i] = temp;
}
printf("%s", str);
return 0;
}
網(wǎng)頁名稱:c語言倒敘字符串函數(shù) c 字符串倒序
URL網(wǎng)址:http://muchs.cn/article46/dosjhhg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計、網(wǎng)站改版、服務器托管、ChatGPT、網(wǎng)站設(shè)計、全網(wǎng)營銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)