我在一個基本的C編程課程,我試圖創建一個hang子手遊戲。在過去的三個小時裏,我一直困擾着一個問題,而且我沒有明智的做法。將函數中的單詞複製到C中帶有strcpy的字符串中?
基本上,我創建了一個函數,它從文本文件中讀取一個隨機行,然後將其複製到一個字符串中。之後,我想將該字符串複製到函數外的另一個字符串。這是因爲主遊戲應該是完全用函數構建的。
這是從文本文件,並將其複製到一個字符串中讀取一個隨機單詞的功能:
char datorns_val()
{
char ordlista[20];
char valt_ord[20];
int raknare = 0;
srand(time(NULL));
random = rand()%10+0;
ptr_file =fopen("hangman.txt","r");
if (!ptr_file)
{
return 1;
}
while (fgets(ordlista,20, ptr_file)!=NULL)
{
raknare++;
if (raknare == random)
strcpy(valt_ord, ordlista);
}
return valt_ord;
}
此步驟完成後,我想複製位於valt_ord另一串詞,就在那個時候,我不確定該怎麼做:
char word[20];
strcpy(word,datorns_val());
我得到兩個錯誤,說:
Invalid conversion from 'char' to 'const char*'
和
initializing argument 2 of 'char* strcpy(char*, const char*)'
我在這裏使用strcpy()
兩次或在正確的軌道上我會完全失去?我想我建立一個沒有功能的結構,只是在相繼輸入了所有代碼和它的作品,如果更換第二strcpy()
用一個簡單的char word = valt_ord.
感謝,喬納森
(如果我的代碼是很難對不起明白了,我是瑞典人,我的第二語言是英語)
你是返回一個字符數組是在棧上,所以這是不行的。你需要在堆上返回它的一個副本,你用'malloc'分配。 –