Страница 1 из 1

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

Добавлено: 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");
}

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

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

P.S. Забанил бы за такое имя...