Как добавить слова в массив - C (СИ)
Формулировка задачи:
Как добавить слова в массив a[i], а то в данном случае введенное слово переносит на новую строку
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,n,z,b[5];
char a[5];
FILE *fp;
scanf("%d",&z);
if (z==2)
{
fp = fopen ( "3.txt", "r+" );
if ( fp == NULL )
{
printf("Нет файла с данными");
return 1;
// выход по ошибке, код ошибки 1
}
for (i = 0; i < 5; i++)
{
n = fscanf ( fp, "%s %d", &a[i],&b[i]);
printf("%s %d \n",a[i],b[i]);
}
fclose ( fp ); // закрыть файл
}
if (z==1)
{
fp = fopen( "3.txt", "w" ); // открыть файл на запись
for ( i = 0; i < 5; i ++ )
{
scanf("%s %d", &a[i],&b[i]);
fprintf ( fp, "%s %d \n",a[i],b[i] );
}
fclose ( fp );
}
}Решение задачи: «Как добавить слова в массив»
textual
Листинг программы
char a[5][100];// 5 слов, каждое не более 99 букв
Объяснение кода листинга программы
- Объявляется массив
aтипаcharс размером 5*100 = 500 символов - В каждой строке массива
aбудет храниться одно слово - Для каждого слова в массиве
aвыделяется 100 символов памяти - Размер каждого слова в символах будет храниться в переменной
size - Каждое слово будет записываться в массив
aс помощью функцииstrcpy() - После записи каждого слова в массив
a, значение переменнойsizeуменьшается на единицу - Если значение переменной
sizeбольше нуля, то продолжается запись слов в массивa - Если значение переменной
sizeравно нулю, то запись слов в массивaпрекращается