Другой вариант, позволяющий использовать более одного символа в качестве разделителя.
char str[] = "Help me Please";
char newstr[80];
char *p = strpbrk(str, " \t\xA0"); /* space, tab or non-breaking space (assuming western encoding, that part would need adaptation to be trule portable) */
if(p)
strlcpy(newstr, str, p - str + 1);
else
newstr[0] = 0;
strlcpy
не является стандартным, но достаточно распространенным для использования. Если его нет на платформе, его легко реализовать. Обратите внимание, что strlcpy
всегда помещает 0 в последнюю скопированную позицию, перед +1 в выражении длины.