Если вы хотите заменить \ n или \ t чем-то другим , вы можете использовать функцию strstr (). Возвращает указатель на первое место в функции с определенной строкой. Например:
// Find the first "\n".
char new_char = 't';
char* pFirstN = strstr(szMyString, "\n");
*pFirstN = new_char;
Вы можете запустить это в цикле, чтобы найти все \ n и \ t.
Если вы хотите «удалить» их, т.е. удалить их из строки , вам нужно будет использовать тот же метод, что и выше, но каждый раз копировать содержимое строки «назад» вы находите \ n или \ t, так что «это тест» становится: «это тест».
Вы можете сделать это с помощью memmove (не memcpy, поскольку src и dst указывают на перекрывающуюся память), например, так:
char* temp = strstr(str, "\t");
// Remove \n.
while ((temp = strstr(str, "\n")) != NULL) {
// Len is the length of the string, from the ampersand \n, including the \n.
int len = strlen(str);
memmove(temp, temp + 1, len);
}
Вам нужно будет повторить этот цикл снова, чтобы удалить \ t.
Примечание: Оба эти метода работают на месте. Это может быть небезопасно! (Подробности читайте в комментариях Эвана Терана. . Кроме того, эти методы не очень эффективны, хотя они и используют библиотечную функцию для некоторого кода, вместо того, чтобы свернуть свой.