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的起始位置,就是第一個字元的位...