Работа с массивом типа Char
- Войдите на сайт для отправки комментариев
Ср, 19/02/2020 - 15:11
Всем привет! Имеется массив:
char Array[] = "Hello!";
как мне из него получить несколько символов? То есть мне из всей строки нужно получить только кусочек "el". Как это можно организовать, есть ли для этого простой способ?
strncpy
#include <stdio.h> #include "string.h" char array[] = "Hello!"; char _el[3] =""; int main(void) { strncpy(_el,&array[1],2); printf("%s",_el); return 0; }Мдааа .... и эти люди называют меня троллем! Куда катится мир?
Троллем тебя здесь пока что только я называл. Но, похоже, ты прав, mixail844 - тролляра не меньшего уровня, чем ты :-)
Троллем тебя здесь пока что только я называл. Но, похоже, ты прав, mixail844 - тролляра не меньшего уровня, чем ты :-)
между прочим, для Уно - компилируется ;))))))
А чё б ему не компилироваться? Не проверял, но, скорее всего, даже работает!
Троллинг тут тонкий. mixail844 не дописывает хвостовой ноль (а сама strncpy этого не делает!), используя то, что массив _el глобальный, а, значит, изначально заполнен нулями и длина его именно три. Нетрудно представить себе, какие грабли полетят в лоб ТС, если он сделает массив локальным или большей длины. Но тролля это не волнует - у него всё работает :-)))
Молодец mixail844! Тоже люблю такие шутки :-)
Простите, а куда mixail844 принтэфит? Я чё то потерялся.
троллить начал rkit, предложив именно эту функцию :) Достаточно убрать одну букву :)
Простите, а куда mixail844 принтэфит? Я чё то потерялся.
https://rextester.com/l/c_online_compiler_gcc
Простите, а куда mixail844 принтэфит? Я чё то потерялся.
https://rextester.com/l/c_online_compiler_gcc
Куда gcc принтит понятно. А в ардуине куда?
троллить начал rkit, предложив именно эту функцию :) Достаточно убрать одну букву :)
Дааа? И какую же?
Дааа? И какую же?
никакую.
Опять я не по делу вылез :(
Простите, а куда mixail844 принтэфит? Я чё то потерялся.
Простите, а куда mixail844 принтэфит? Я чё то потерялся.
напишы
int srlPutChar(char c, FILE *AStream) { if (c == '\r') srlPutChar('\n', AStream); Serial.print(c); return 0; } void setup(void) { Serial.begin(...); stdout = fdevopen(srlPutChar,NULL); . . }и все стандартные Си функции вывода будут пхать всё в Serial. puts, putchar, printf и т.д.
так же можно и getchar переопределить, и не обязательно на Serial.
Это я умею. В смысле переопредеять вывод. Это ещё много лет назад на мsp430 приходилось делать, что бы printf можно было либо в ком порт, либо на 1602 направить. Мне тут реально интересно стало, куда принтф вывод направляет по дефолту. Просто в воздух, куда то в память? Либо в null ? Что у нас stdout по умолчанию?
В устройство 0, я так думаю
Всем привет! Имеется массив: char Array[] = "Hello!";
как мне из него получить несколько символов? То есть мне из всей строки нужно получить только кусочек "el". Как это можно организовать, есть ли для этого простой способ?
http://arduino.ru/forum/programmirovanie/etyud-rabota-s-char-strokami