Существуют более короткие способы сделать это, как говорили другие, но вы также можете проверять каждый символ, пока не встретите второй пробел самостоятельно, а затем вернуть соответствующую подстроку.
static string Extract(string str)
{
bool end = false;
int length = 0 ;
foreach (char c in str)
{
if (c == ' ' && end == false)
{
end = true;
}
else if (c == ' ' && end == true)
{
break;
}
length++;
}
return str.Substring(0, length);
}
В языке C использование ранее необъявленной функции составляет неявное объявление функции. В неявном объявлении тип возврата int
, если я правильно помню. Теперь в GCC есть встроенные определения для некоторых стандартных функций. Если неявное объявление не соответствует встроенному определению, вы получите это предупреждение.
Чтобы решить проблему, вы должны объявить функции перед их использованием; обычно это делается включением соответствующего заголовка. Я рекомендую по возможности не использовать флаги -fno-builtin - *
.
Вместо stdlib.h вы должны попробовать:
#include <string.h>
Вот где strcpy
и strncpy
определены, по крайней мере, согласно справочной странице strcpy
(2).
Функция exit
определена в stdlib.