Вот примерно так выглядит мое задание.. К сожалению, все свои предыдущие работы я случайным образом удалил вследствие переустановки Windows. Так что сделайте вывод, который должен звучать следующим образом: «никогда не хранить какие-либо документы на диске C, а уж тем более в папке «Мои документы»!.
Ну а теперь к собсно делу:
#include
#include
char str[200] = "hello";
char lword[200] = "hello";
char lresult[200] = "hello";
char firstletter='';
int curpos=0;
int nspacepos=0;
void getfromkeyboard()
{
puts("Vvedite stroku:");
gets(str);
}
void savetofile()
{
FILE *fp;
char filename[255];
do
{
clrscr();
printf("Vvedite imya fajla dlya zapisi: ");
gets(filename);
//printf("Nevozmozhno zapisat v %s\n", filename);
}
while ((fp = fopen(filename, "w")) == NULL);
fwrite (&str, sizeof(str), 1, fp);
printf ("\nZapisali.\n");
fclose(fp);
}
void getfromfile()
{
FILE *fp;
char filename[255];
do
{
clrscr();
printf("Vvedite imya fajla dlya chteniya: ");
gets(filename);
}
while ((fp = fopen(filename, "r")) == NULL);
fread (&str, sizeof(str), 1, fp);
printf ("\nProchitali.\n");
fclose(fp);
}
int getnextspacepos(int frompos)
{
int cpos = frompos;
while ( ( str[cpos] != ' ' ) && ( str[cpos] != '' ) )
{
//printf("%d\n",cpos);
cpos++;
}
return (cpos);
}
void main()
{
int src;
int respos=1;
printf("Viberite sposob vvoda:\n1 - klaviatura\n2 - file\n");
scanf("%d",&src);
//gets(str);
if (src==1) getfromkeyboard();
else getfromfile();
puts("Poluchennaya stroka:");
puts(str);
puts("");
if (src==1)
{
printf("Vi hotite sohranit stroku? (zapisat NA DISK, V FAJL)\n1 - da\n2 - net\n");
scanf("%d",&src);
if (src==1) savetofile();
}
puts("");
puts("Vvedite pervuju bukvu slov, kotorie nuzhno vivesti:");
firstletter = getch();
putch(firstletter);
puts("");
while ( str[curpos] != '' )
{
nspacepos = getnextspacepos(curpos+1);
int as=0,i=0;
for (as=0;as<200;as++) lword[as]='';
for (as=curpos;as<nspacepos;as++) lword[as-curpos] = str[as];
if ( (lword[0] != ' ') && (lword[0] == firstletter) )
for (i=0;i<as-curpos;i++)
{
lresult[respos] = lword[i];
//putch(lword[i]);
respos++;
}
else if ( (lword[0] == ' ') && (lword[1] == firstletter) )
for (i=0;i<as-curpos;i++)
{
lresult[respos] = lword[i];
//putch(lword[i]);
respos++;
}
curpos = nspacepos;
}
lresult[0]=' ';
int as=0;
puts("Rezultati:");
puts(lresult);
}
