Articles of строка

Как преобразовать MAC-адрес (в массив) в строку в C?

Как преобразовать MAC-адрес внутри массива int в строку в C? Например, я использую следующий массив для хранения MAC-адреса: int array[6] = {0x00, 0x0d, 0x3f, 0xcd, 0x02, 0x5f}; Как преобразовать это в строку, например “00:0d:3f:cd:02:5f” ?

Копирование n символов с strncpy более эффективно в C

Мне интересно, есть ли более чистый и эффективный способ сделать следующую strncpy учитывая max количество символов. Я чувствую, что переусердствовал. int main(void) { char *string = “hello world foo!”; int max = 5; char *str = malloc (max + 1); if (str == NULL) return 1; if (string) { int len = strlen (string); if […]

запись форматированных данных неизвестной длины в строку (программирование на С)

Следующая функция C: int sprintf ( char * str, const char * format, … ); записывает форматированные данные в строку. Размер массива, переданного как str, должен быть достаточным, чтобы содержать всю форматированную строку. Однако, что, если длина форматированной строки неизвестна заранее? Как можно использовать эту функцию (или другую ее функцию) для записи форматированных данных, длина […]

Проверьте, содержит ли строка другой C

Теперь у меня есть этот код, но он всегда устанавливает значение null UNICODE_STRING str; char *cmp = “Hello”; RtlInitUnicodeString (&str, L”Hello world!”); if( ( strstr((char * )str.Buffer, cmp) ) != NULL) { // cmp founded in str. } else { // cmp not founded in str. Always here, but why?? } Можете ли вы объяснить […]

Разбор строки до конца в C

Я написал сервер в python и клиент в C. Сервер python отправляет, т.е. «1 1000 \ n» на клиент C. Функция C, которая получает эту строку, должна анализировать ее на два длинных int. void receive_job() { char tmp_buffer[256]; long start, stop; recv(sock, tmp_buffer, 255, 0); /* here I wonder how I can parse tmp_buffer to […]

Моя программа не останавливается при условии

Итак, моя программа не останавливается при условии (str2 [o]! = ‘+’). Поэтому, если кто-нибудь знает, почему и как ее исправить, это поможет мне (:. это мой код – #include #include #include int main() { char str3[9]= “2+48*4+7”; char str2[9]; int w =0,o = 0; for(w = 0; w < 9; w++) { if(str3[w] == '*') […]

Проблемы с использованием execvp в построенной строке

Я пытаюсь написать оболочку, и часть ее построения выполняет код из введенной пользователем строки (буфера). Однако, когда я пытаюсь выполнить execvp строку с дополнительными входами (ae. Echo a), она всегда зажимает pooch и возвращает -1. Я не понимаю, почему. Вот соответствующие fragmentы: char * buffer = calloc(100, sizeof(char)); … fgets(buffer, 100, stdin); buffer[strlen(buffer) – 1] […]

Безопасно ли передавать std :: string в API стиля C?

Хорошо известно, что C ++ передает API-интерфейсы std :: vector в C, которые ожидают выходного массива, так как std :: vector смежный: std::vector myArray(arraySize); cStyleAPI(&myArray[0], arraySize); Безопасно ли передавать std :: string таким же образом в C API? Есть ли какая-либо гарантия в стандартном C ++ 03, что std :: string является непрерывной и работает […]

Есть ли эквивалент strtol, который не требует строки с завершающим нулем?

Существует ли стандартная функция C, аналогичная strtol, которая примет char * и длину для строки с нулевым завершением? Я знаю, что я могу скопировать строку в область с нулевым завершением, но по причинам эффективности это нежелательно. Благодарю.

Есть ли обратная функция для strstr

Я пытаюсь найти аналогичную функцию для strstr которая ищет подстроку, начиная с конца в начале строки.