Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Делаю упражнение / 4 сообщений из 4, страница 1 из 1
29.12.2003, 00:25
    #32365392
Nerop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Делаю упражнение
Есть ли в этом коде ошибки?

/*Упражнение 2.4. Напишите версию функции
squeeze(s1,s2), которая удаляет из s1 все
символы, встречающиеся в строке s2.*/

#include <stdio.h>
void squeeze (char , char);
main()
{
int i,c;
char ss1[1000];
char ss2[1000];
printf ("Enter the massive ss1:\n");
for (i = 0; (c = getchar()) != '`'; i++) //Ввести массив ss1
{
ss1 = c;
}
ss1 = '\0';

printf ("Enter the massive ss2:\n"); //Ввести массив ss2
for (i = 0; (c = getchar()) != '`'; i++)
{
ss2 = c;
}
ss2 = '\0';
squeeze (ss1[], ss2[]);
}




squeeze(char s1[], char s2[])
{
int i;
int j;
for (i=0; s1 != '\0'; i++)
{
for (j = 0; s1 != s2[j] && s2[j] != '\0'; j++)
{ }
if (s2[j] == s1) //Сверить s1 с s2[0,1,2...]
{ }
else if (s2[j] != s1)
{ putchar(s1); }
}

return 0;
}
...
Рейтинг: 0 / 0
29.12.2003, 10:49
    #32365598
YuriAM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Делаю упражнение
полно. можно было написать например так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
#include <stdio.h> 
void squeeze (char* , char*); 
main() 
{ 
	char ss1[ 1000 ] =  "ghjkhdsgjkhdsgk" ; 
	char ss2[ 1000 ] =  "gf4etf87hvcjkshf73" ; 

	squeeze(ss1,ss2);

	printf( "%s\n" ,ss1);
	return  0 ;
} 

void squeeze(char* pS1, char* pS2) 
{ 
	char *tpS1, *tpS2, *tpS3;

	for (tpS1=pS1,tpS3=pS1; *tpS1; tpS1++) 
	{ 
		for (tpS2=pS2; *tpS2; tpS2++) 
		{ 
			if (*tpS2 == *tpS1)
			{
				break;
			}
		}
		*tpS3 = *tpS1;
		if (!*tpS2) tpS3++;
	}
	*tpS3 =  0 ;
}
...
Рейтинг: 0 / 0
29.12.2003, 11:17
    #32365642
YuriAM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Делаю упражнение
Или так еще лучше ( товарищ подсказал двигаться сзади )
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
#include <stdio.h> 
#include <string.h> 
void squeeze (char* , char*); 
main() 
{ 
	char ss1[ 1000 ] =  "ghjkhdsgjkhdsgk" ; 
	char ss2[ 1000 ] =  "gf4etf87hvcjkshf73" ; 

	squeeze(ss1,ss2);

	printf( "%s\n" ,ss1);
	return  0 ;
} 

void squeeze(char* pS1, char* pS2) 
{ 
	char *tpS1, *tpS2;

	for (tpS1=pS1+strlen(pS1) ; tpS1 != pS1- 1 ; tpS1 --) 
 
	{ 
		for (tpS2=pS2; *tpS2; tpS2++) 
		{ 
			if (*tpS2 == *tpS1)
			{
				strcpy(tpS1,tpS1+ 1 );
			}
		}
	}
}
...
Рейтинг: 0 / 0
30.12.2003, 10:33
    #32366644
YuriAM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Делаю упражнение
Еще лучше
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
#include <stdio.h> 
#include <string.h> 
void squeeze (char* , char*); 
main() 
{ 
	char ss1[ 1000 ] =  "ghjkhdsgjkhdsgk" ; 
	char ss2[ 1000 ] =  "gf4etf87hvcjkshf73" ; 

	squeeze(ss1,ss2);

	printf( "%s\n" ,ss1);
	return  0 ;
} 
void squeeze(char* pS1, char* pS2) 
{ 
	char *tpS1;
	for (tpS1=pS1+strlen(pS1) ; tpS1 != pS1- 1 ; tpS1 --) 
 
	{ 
		if (strchr(pS2,*tpS1)) 
				strcpy(tpS1,tpS1+ 1 );
	}
}
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Делаю упражнение / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]