Задачка на строки

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
•¸•▪♥⎝♥⏝♥⎠♥▪•¸•'´¯
Сообщения: 1
Зарегистрирован: 10 сен 2017, 10:35

10 сен 2017, 10:37

Прошу помочь мне с задачкой по строкам нужно вывести только те слова которые не содержат символов именно с использованием функции strspn.
Я не понимаю как её здесь применить эта функция возвращает индекс первого не совпадающего
символа. А нужно дойти до конца слова и если нет символов напечатать слово. Подскажите пожалуйста?

Код: Выделить всё

char temp[100] = {}, Array[] = { "!@%$#&*" }, A[100] = {};
char * path,*p;
char r[12] = " ,./!?;:\"\'";
SetConsoleCP(1251);
cin.getline(temp, 100, '\n');
SetConsoleCP(866);
path = strtok(temp, r);
p = A;
while (path != NULL)//пока есть слова
{

if (strspn(path, Array))//вот здесь нужно подправить условие
strcat(strcat(p, path), " ");


path = strtok(NULL, r);

}
cout << p;
system("pause");
}
Аватара пользователя
Romeo
Сообщения: 3091
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

10 сен 2017, 12:13

•¸•▪♥⎝♥⏝♥⎠♥▪•¸•'´ писал(а):Я не понимаю как её здесь применить эта функция возвращает индекс первого не совпадающего символа.
Это не так. Если внимательно прочесть документацию на функцию strspn, то мы узнаем, что функция считает в первой строке символы, которые есть во второй строке. Таким образом, задача легко реализуется указанной функцией. Достаточно вызвать её и проверить, что вернулся 0.

P.S. Забанил бы за такое имя...
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Ответить