Нужна помощь по работе со строками символов
Добавлено: 04 дек 2016, 00:59
Ошибка в 3ем задании: Заменить каждое вхождение в строку символов указанного пользователем слова на другое слово. Выводит только первое слово почему-то. Спасибо заранее
Ошибка где-то тут:
А весь код:
Ошибка где-то тут:
Код: Выделить всё
case '3' : printf("Vvedite zameniaemoe slovo\n");
gets(zamen);
printf("Vvedite vstavliaemoe slovo\n");
gets(vstavl);
p=strtok(s," ");
b=0;
while(p!=NULL)
{
b++;
strcpy(mas[b],p);
p=strtok(NULL," ");
}
for (i=0;i<b;i++)
if (strcmp(mas[i],zamen)==0)
{
strcpy(mas[i],vstavl);
}
printf("%s",mas);
break;
Код: Выделить всё
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
void main(void)
{
char a,s[255], pod[255],*p,zamen[100],vstavl[100],mas[100][100];
int n,i,b;
printf("Vvedite text\n");
gets(s);
while(1)
{
printf("\nWiberite punkt menu ");
printf("\n1.Perevesti vse simvoli vvedennoi stroki v niszniy registr.");
printf("\n2.Podschitat kolichestvo vhoszdeniy podstroki v stroku.");
printf("\n3.Zamenit' kazhdoe vhoschdenie v stroku simvolov ukazannogo polzowatelem slova na drugoe slovo.\n");
printf("\nDlia vihoda naschmite ESC.\n");
a=getch();
switch(a)
{
case '1' : strlwr(s);
printf("\nRezultat: %s",s);
getch();
break;
case '2' : i=0;
printf("Vvedite podstroku: ");
scanf("%s",pod);
p=s;
while(p)
{
if(p=strstr(p,pod))
{
i++;
p++;
}
}
printf("\nKolichestvo vhozdeniy: %d",i);
getch ();
break;
case '3' : printf("Vvedite zameniaemoe slovo\n");
gets(zamen);
printf("Vvedite vstavliaemoe slovo\n");
gets(vstavl);
p=strtok(s," ");
b=0;
while(p!=NULL)
{
b++;
strcpy(mas[b],p);
p=strtok(NULL," ");
}
for (i=0;i<b;i++)
if (strcmp(mas[i],zamen)==0)
{
strcpy(mas[i],vstavl);
}
printf("%s",mas);
break;
case 27:
exit(1);
default:
printf("Takogo punkta net");
getch();
}
}
}