1樓:匿名使用者
#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 main(void)
2樓:匿名使用者
#include
#include
int main()
num[k] = '\0';
puts(num);
return 0;}
c語言,字串輸出是亂碼
3樓:
#include
#include
#include
int random(int num);
void main()
printf("請依次輸入學生姓名:");
for(i=0;i被點到的同學的名字是:");
printf("%s ",p[random(n-1)]);
}int random(int num)
4樓:匿名使用者
你好沒有亂碼
就是邏輯上有些錯誤如圖:
5樓:匿名使用者
按照程式是在a字元
串中隔一個字元取一個形成b字串
void main()
half(a);
}輸出24680bdfhj
如果出亂碼,可能你的a陣列賦值方面有問題,不知道你是如何定義a陣列和呼叫函式的
6樓:匿名使用者
輸出亂碼是必須的,
因為你的資料型別搞錯了,
你使用的是字元函式stringcopy()來拷貝字元;
那麼要處理的資料當是char型別,
然而你所定義的指標應當也是char型別;
你應當修改的地方是
int *str1,*str2;//請將int改為char
7樓:匿名使用者
沒什麼問題,第一個for迴圈後多了一個分號;只要保證你傳入該函式的陣列a中有準確的二十個字元就行,如:char a=;
8樓:
while(1)
else }
9樓:匿名使用者
把讀迴圈改為 : while(fgets(str,120,fp) != null) printf("%s\n",str);
這樣就不需要直接檢查檔案是否結束,這是因為fgets()函式在讀滿120個字元或遇到'\n'時,就返回str的首址。在讀檔案時,測試是否到檔案結束經常出錯,我看見高手們都很少使用feof();函式,原因大概在此吧!
10樓:匿名使用者
原因向他們說的那樣, char a是一個區域性變數, 函式返回後他在棧上的空間就自動釋放了...
可以這樣改下:
#include
#include
#include
#include
using namespace std;
#define max_len 10
char* getnick()
return a;
}void main()
11樓:匿名使用者
getnick函式內的陣列a是區域性陣列,在棧上分配空間``,當getnick執行完後,棧空間會被**
可把a定義為全域性變數或動態申請空間(在堆中分配空間)
12樓:匿名使用者
getnick 返回的a,是一個區域性變數,當getnick返回後,這個變數就無效了,這個變數所指記憶體中的內容變得不可**,列印出來的當然不行了。你要麼把 a 宣告在函式外面,作一個全域性變數,要麼在getnick裡
static char a = ....;
13樓:匿名使用者
你的 str2 沒有加結束字元
加上 str2[n] = '\0';
就能濾掉後面的亂碼了
14樓:匿名使用者
if( !(file = fopen(name, "wb")))
你是以二進位制的方式開啟檔案的,用「w+」吧: fopen(name, "w+")
15樓:匿名使用者
#include
int main()
str2[n]='\0';
}puts(str2);
putchar('\n');
return 0;
}就是 str2 的結束加上結束符『\0』
c語言 字串輸出時最後出現亂碼
16樓:匿名使用者
輸出出現亂碼就是因為字串結尾並沒有結尾符'\0'。
gets函式讀入一行字串時,會在最末尾自動加上'\0'結尾。但是你在for迴圈內將s2的字元一個個拷貝到s中的時候,迴圈限定條件只到了s2字串的'\0'結尾符之前,所以輸出亂碼了。
將迴圈條件k
17樓:匿名使用者 #include #include int main() { int a,b,k; char s1[1000],s2[1000],ex; gets(s1); gets(s2); a=strlen(s1); b=strlen(s2);//計算字串長度//char s[a+b+1]; memcpy(s,s1,a);//把s1放入s中//for(k=a;k c語言列印字串亂碼,應該怎麼辦? 字串bai遇到 0表示結束 第一個字du符串就相zhi當於dao abc123 那版麼長度為6 第二個字串就相當於 abc 那麼長度為3但是實際操作權發現並非如此,如下程式 include memcpy c1,abc123 01de n 0x20 printf s n c1 char c2 0x20... c語言字串以 0 結尾,如果不以該符號結尾則輸出 s時會出錯,程式一直往存放字串的地址訪問。而你的程式中並沒有賦 0 給那兩個陣列,所以會出現亂碼。沒有出現亂碼的陣列是因為你初始化了,初始化時編譯器會給它加上 0 符號。include int main void c語言中字串以 0 結尾,你這樣迴圈... 在你輸入int型別的n後同時輸入了一個換行符,這使a 0 n 而不是 a 所以說你的a字元型陣列存的其實是 nabcd e 則沒有讀入,可以考慮用scanf s a 來讀入,或在輸入字元前用getchar 把換行符讀掉 那是鍵盤緩衝區殘餘資訊的問題 include int main while c ...c語言字串常量的問題,C語言字串常量的一個問題。
c語言輸出字串陣列出現亂碼,C語言陣列輸出出現亂碼
c語言字串輸入輸出問題,一個C語言字串輸入輸出問題