c語言程式,目的倒序輸出字串,邏輯錯誤怎麼改?

2025-01-15 04:10:18 字數 2417 閱讀 5741

1樓:網友

string2[size-i]=string1[i];

string2[size+1]='

改為:string2[size-i - 1]=string1[i];

string2[size+1]='0';

最好在display2(char*string1) 函式的結尾處加一句。

free( string2 );

用完記憶體後最好釋放記憶體,以免程式以後不小心使用這個空間。

請教c語言字串倒序輸出

2樓:網友

#include

#include

void main()

int invertion(char *ch1, char *ch2)/*char1 接收實參傳過來的原字串指標 char2 接收倒序後的新字串返回主函式*/

printf("count = %d", count);

ch1=ch1-1;//前面的ch1經過迴圈之後已經指向字串的結束標誌'\0',這裡減1是為了讓它指向字串的最後乙個字元。

while(ch1>=ch)//讓ch1從指向string1的最後乙個字元開始往前遞減,當減到字串的首個字元時結束。

ch1--;

ch2++;

for(int i=1;i<=num;i++,ch2++)//因為string1的第乙個單詞前沒有空格符,肯定輸不出來,所以單獨用乙個迴圈將其輸出。

ch2-num)=*(ch1+i);

ch2='\0'; //string2的結束標誌。

這是我做了修改之後的程式,看看符不符合要求!!

你的那個定義的變數太多,很混亂!迴圈語句太亂了,if判斷條件與迴圈條件不正確。

已經做了修改,看符合要求不,不行的話,再說!!!

又做了修改了,看符合要求不??

不會吧,我除錯通過還執行了!!不然怎麼會發上來啊!!至於演算法問題我給註釋吧,你看看!!

3樓:文件類共創空間

#include

提供求串長函式strlen()

#include

最後乙個元素下標。

int end;

void turn(char *h,int p)}void main()

4樓:

我也寫乙個吧:

void main()

思路是這樣的,具體**也可能有一些錯誤,動態記憶體分配我都記不起了,所以也沒有用。

5樓:初驕摩夜

你的函式。

沒有返回值。

把a,b兩個。

陣列設為。全域性變數。

就好了。就這樣就行了:

#include

chara[20],b[20];

charstr(char

a,charb)}

voidmain()

c語言 程式原理解答 逆序輸出字串

6樓:卡婭茨

這是遞迴,就是如果指標不為空就後移,知道為空,然後開始一點點返回,就從後往前輸出了,不建議這麼寫**,遞迴很消耗資源的,而且耗時。

c語言程式:將一串字元倒序輸出,結果如圖,問題在哪?**在下面

7樓:張

str是乙個空間為20的陣列,你卻把字元輸入到下標為1-21的元素輸入和輸出的for迴圈應該是(i = 0; i < 20; i++)char str[20];

而你從1開始計位,也就是說只能輸入20個字元,而且下標21是越界的,str[20]下標範圍是0-19

所以這樣定義只能輸入20個字元。

輸入n位字串至少預留n+1位空間,避免代表換行或者結束符下標越界#define _crt_secure_no_warnings#include

#include

#include

void mystrrev(char str)}int main()

scanf("%s", 陣列指標);可以直接輸入乙個字串n-i+1已經改成n-i-1

c語言寫用乙個函式實現字串陣列的倒序輸出,返回字串 下面是我寫的程式

8樓:網友

你犯了兩個錯誤。

的生命週期只是output函式,當執行到printf的時候,b的記憶體已經被系統**了,所以p指向地的一塊無效的記憶體。

應該被初始化。申請b的時候,它裡面的內容不確定,而printf會逐個輸出字元直到遇到結束符'\0'.

我修改後是這樣的。

#include ""

#include ""

char *output(char name)main()

char *output(char name)

c語言怎麼用printf輸出字串

printf函式的一般格式 printf 格式控制字串,輸出表列 以圖1所示為例。圖1.函式引數包括兩部分 1 格式控制字串,是用雙引號括起來的字串,也稱為轉換控制字串,它指定輸出資料項的型別和格式。它包括兩種資訊 格式說明項 由 和格式字元組成,如 d,f等。格式說明總是由 字元開始,到格式字元終...

c語言輸出字串陣列出現亂碼,C語言陣列輸出出現亂碼

c語言字串以 0 結尾,如果不以該符號結尾則輸出 s時會出錯,程式一直往存放字串的地址訪問。而你的程式中並沒有賦 0 給那兩個陣列,所以會出現亂碼。沒有出現亂碼的陣列是因為你初始化了,初始化時編譯器會給它加上 0 符號。include int main void c語言中字串以 0 結尾,你這樣迴圈...

c語言列印字串亂碼問題,C語言,字串輸出是亂碼

include void reverse char p,char q char myitoa int value,char const string,int radix else while value if sign reverse string,s 1 s 0 return string int...