輸出的字串是隨機的,但是地址的值是也是對了的。vs

2022-08-20 15:42:11 字數 772 閱讀 1247

1樓:風若遠去何人留

char buf[10];

是區域性變數, 返回的是它的地址。 而區域性變數在函式退出後就被釋放了。

兩種改法, 一種把buf定義為靜態, 退出函式不釋放。

char* int2str( int i)buf[k] = 0;

return str;

}int main(void)

另一種, buf由主函式傳入

char* int2str( int i, char *buf)buf[k] = 0;

return str;

}int main(void)

2樓:這個就是我喔

你的fopen_s用錯了,你用了舊的fopen風格。注意fopen_s跟fopen是不同的。 另外,建議路徑寫成:

「g:\\sui.txt」(注意斜槓) 正確的是:

#includeint main()els...

3樓:陽光的雷咩咩

我用devcpp測試了,輸出str=12

4樓:

char buf[10];

char *str = buf;

這個 pstr,指向的,是buf。 buf是區域性變數。在退出 int2str這個函式後,就變的不可控制了。

所以出現亂碼的情況。

改法:void int2str(char* buf, int i) //這裡這樣改

int main(void)

c語言字串輸出是亂碼,C語言,字串輸出是亂碼

include include include int random int num void main printf 請依次輸入學生姓名 for i 0 i被點到的同學的名字是 printf s p random n 1 int random int num 你好沒有亂碼 就是邏輯上有些錯誤如圖 ...

sql隨機擷取字串的數字,sql隨機擷取字串的數字

首先 要肯定的是在該字串中是沒辦法取到隨機數的。如果要取隨機數,要先把字串轉換為行資料,放於1列中。然後再隨機取一個數,最後再把行資料拼接為字串即可。下面兩句定義了表變數作參考,使用時去掉,給 str賦值查詢時換成你自己的表 declare temptb table id int,vals varc...

c 獲取字串前三位,c 中輸出字串的前10個字元

如果是cstring的話cstring s s s.left 3 這裡s就是答案 str.substring 0,3 c 怎麼在string提取指定位數的位元組?在c或c 中有沒有對字串擷取前某幾位的函式 string str str.substr 0,3 0表示str的起始位置,就是第一個字元的位...