私はこの作業を試してみるのに何時間も努力してきましたが、結果は常に同じエラーとなり、プログラムは応答しませんでした。C言語:文字列を1つずつ配列にコピー
このファイルはチャットの履歴を表しており、すべての行からユーザー名を選択します。今はそれらを配列に追加したいので、例えば後でそれらを数えることができます。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char* argv[])
{
char const* const fileName = argv[1];
FILE* file = fopen("beispielhafteGeschichte3", "r");
char line[256];
int i, j, k;
char new_array[15][30];
while (fgets(line, sizeof(line), file))
{
for (i=0; i<strlen(line); i++)
{
if (line[i-1]==']')
{
for(k=i; k<strlen(line); k++)
{
printf("%c", line[k]);
if (line[k+1]==':') break;
}
strncpy(new_array[i], line[k], 29); // ?????
printf("\n");
}
}
}
fclose(file);
return 0;
}
strncpyを修正するにはどうすればよいですか?
'strcpy'は問題ありません。障害はあなたのコードにあります。 – Olaf
'if(line [i-1] == ']')'で配列の外側をチェックしている理由はありますか? (私は0から始まる) –
しかしそれなしで、それはすべて正常に動作します。 –