本文目錄一覽:
- 1、怎麼用C語言輸入一個數,讓它倒序輸出成一個數,
- 2、如何用C語言將字元串逆序輸出?
- 3、C語言怎麼在不用數組的情況下將輸入的字元串倒序輸出?
- 4、C語言:輸入一個字元串,然後逆序輸出
- 5、請教C語言字元串倒序輸出
- 6、c語言關於 字元串倒序並輸出
怎麼用C語言輸入一個數,讓它倒序輸出成一個數,
可以將輸入的多位數順序存放到一個數組中,之後逆序輸出即可。
具體的實現方法可以參考如下程序:
#includestdio.h
#includestring.h
void main()
{
char num[20];
int i;
printf(“輸入一個多位數:”)
scanf(“%s”, num); // 將多位數作為一個字元串的形式一次性輸入,保存在num數組中
// 將數組num中的字元逆序輸出,即實現多位數的倒序輸出
for(i=strlen(num)-1; i=0; i–)
printf(“%c”, num[i]);
}
如何用C語言將字元串逆序輸出?
C語言程序如下:
#includestdio.h
#includestring.h
main()
{
int i,j,t,n;
char a[10];
printf(“請輸入字元串:”);
gets(a);
n=strlen(a);
for(i=0;i=n/2;i++)
{
t=a[i];
a[i]=a[n-1-i];
a[n-1-i]=t;
}
for(j=0;jn;j++)
printf(“%c”,a[j]);
printf(“\n”);
}
擴展資料:
字元串倒序輸出的五種方法
1、使用數組循環
2、StringBuffer的reverse方法
3、StringBuffer的循環
4、棧的後進先出
5、迭代完成
C語言怎麼在不用數組的情況下將輸入的字元串倒序輸出?
那就使用指針了
int main(void )
{
char* str=”Hello china”;
char* p = str; char* end;
while(*p!=’\0′)
{
end=p;
p++;
}//此循環是為了找到字元串的結尾字元
while(end!=str) {printf(“%c”,*end); end–;} //從最後一個字元開始逆向輸出,直至第一個字元
printf(“%c\n”,*end);//將最後一個字元輸出
}
承接單片機開發
C語言:輸入一個字元串,然後逆序輸出
#include stdio.h
int main()
{ int len,i;
char str[100];
gets(str);
len=strlen(str);
for(i=len-1;i=0;i–)
printf(“%c”,str[i]);
return 0;
}
拓展資料
C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
儘管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標準規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
請教C語言字元串倒序輸出
#includestdio.h
#includestring.h
void main()
{
char string1[200]; //用於存放輸入的字元串
char string2[200]; //用於存放倒序後的字元串
int invertion(char *ch1, char *ch2); //聲明函數
printf(“Please input a sentences:\n”);
gets(string1); //這裡不要用scanf,因為scanf遇到空白符就會結束
printf(“Your inputed sentences is:%s\n”, string1);
invertion(string1, string2);
printf(“The invertion sentences is:%s\n”, string2);
getchar();
}
int invertion(char *ch1, char *ch2)/*char1 接收實參傳過來的原字元串指針 char2 接收倒序後的新字元串返回主函數*/
{
int count = 1,num=0;
char *ch=ch1;
for(;*ch1!=’\0′;ch1++)// 統計單詞個數
{
if(*ch1==’ ‘)
count++; //單詞數等於空格數加1,前面把count初始化為1就是這個原因
if(*ch1==’ ‘*(ch1+1)==’ ‘) //防止單詞之間有2個空格符而多計數了一個單詞數
count–;
}
printf(“count = %d\n”, count);
ch1=ch1-1;//前面的ch1經過循環之後已經指向字元串的結束標誌’\0’,這裡減1是為了讓它指向字元串的最後一個字元
while(ch1=ch)//讓ch1從指向string1的最後一個字元開始往前遞減,當減到字元串的首個字元時結束
{ int j=num; //保存num,後面要用到這個數
if(*ch1!=’ ‘)//記錄每個單詞的長度 ,以空格符作為標誌
num++;
else // 知道了每個單詞的長度之後,就可以用循環將字元以單詞為單位寫入數組string中,這樣的話單詞內就不會倒序了
{
for(int i=1;i=j;i++,num–)
*(ch2-num)=*(ch1+i);
*ch2=*ch1;
}
ch1–;
ch2++;
}
for(int i=1;i=num;i++,ch2++)//因為string1的第一個單詞前沒有空格符,肯定輸不出來,所以單獨用一個循環將其輸出
*(ch2-num)=*(ch1+i);
*ch2=’\0′; //string2的結束標誌
}
這是我做了修改之後的程序,看看符不符合要求!!
你的那個定義的變數太多,很混亂!循環語句太亂了,if判斷條件與循環條件不正確
已經做了修改,看符合要求不,不行的話,再說!!!
又做了修改了,看符合要求不??
不會吧,我調試通過還運行了!!不然怎麼會發上來啊!!至於演算法問題我給注釋吧,你看看!!
c語言關於 字元串倒序並輸出
for
(i
=
0;
i
len
;
i++)
{
a1[i]
=
a[len
–
i
–
1];
//
這樣寫整個轉了一圈,而且數據被破壞了,你沒有先保存原a[i]的值,丟了!
}
for
(i
=
0;
i
len
/
2;
i++)
這是正確寫法,前半部分與後半部分交換!!
{
temp
=
a[i];
//保存
a[i]
=
a[len
–
i
–
1];
後面的移前面
a[len
–
i
–
1]
=
temp;
//將前面的保存的數據,移到後面
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/207189.html