Strpbrk возвращает указатель на первое вхождение в строке s любого символа из строки accept. Если таких символов не обнаружено, то возвращается NULL.
Strspn возвращает длину начального сегмента строки s, состоящего только из символов строки accept.
Strcspn возвращает длину начального сегмента строки s, состоящего только из символов, не указанных в строке reject.
Memchr ищет первое вхождение символа c в массиве s, просматривая при этом не более n символов. Возвращает указатель на символ c или NULL, если таковой не найден.
Функции поиска
Этот вариант удобнее, если нужно объединить более двух строк. Однако к его недостаткам относится типонебезопасность.
Для конкатенации ( сложения ) следует использовать функции.
Конкатенация (объединение) строк
Сначала простой вопрос – каков результат выполнения следующего кода:
char str1[10]="Hello";
char str2[10]="World!";
char* str3;
str3=str1+str2;
Если ответ – ошибка на этапе компиляции, материал изложенный в статье вы усвоили (или знали это раньше). Если же вы полагаете, что в str3 будет хранится строка "Hello world!", то вероятно, предыдущих объяснений оказалось недостаточно. Нельзя складывать указатели (и имена массивов).
Эти функции добавляют к строке, на которую указывает dest, символы из строки source. Первая версия добавляет все символы до нуль-терминатора, вторая – максимум size символов. Результирующая строка завершается нуль-терминатором.
char str1[10]="Hello";
char str2[10]="World!";
char str3[20]= "";
strcat(s3,s1); //s3= Hello
strcat(s3,s2);//s3= Hello World
Кроме того, можно воспользоваться общей функцией sprintf так: