Отговори на тема  [ 17 мнения ]  Отиди на страница 1, 2  Следваща
NULL terminated string appending 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Яну 01, 2012 7:04 pm
Мнения: 2593
Местоположение: Велико Търново / София
Мнение NULL terminated string appending
Имам
char * string = "alabala";
Искам обаче да допълня този низ примерно със "neshto drugo" и да се получи string = "alabala neshto drugo". Поради структурата на програмата не мога отначало да направя целия стринг.
Кой е най-лесният начин ? Компилатора е MPLABX - XC8

_________________
https://github.com/slav4ocom/


Вто Сеп 26, 2017 4:11 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 11:48 am
Мнения: 4723
Мнение Re: NULL terminated string appending
#define AA "neshto drugo"
#define BB "alabala"
char * string = AABB;

_________________
main[-1u]={1};


Вто Сеп 26, 2017 4:37 pm
Профил ICQ
Online
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пет Юни 03, 2005 8:39 pm
Мнения: 1972
Мнение Re: NULL terminated string appending
Нещо такова ?

Код:
char str[9] = "1234";
char *str2 = "5678";
strcpy(&str[strlen(str)], str2);

_________________
Определянето стойността на дадена величина се нарича ИЗМЕРВАНЕ!


Вто Сеп 26, 2017 5:25 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 11:48 am
Мнения: 4723
Мнение Re: NULL terminated string appending
или strcat

_________________
main[-1u]={1};


Вто Сеп 26, 2017 5:32 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пон Мар 13, 2006 12:59 pm
Мнения: 3855
Местоположение: Габрово
Мнение Re: NULL terminated string appending
Или разточителното snprintf() http://www.cplusplus.com/reference/cstdio/snprintf/
Но споменаваш майкрочип та там може и да липсва...

Нещо такова:
Код:
/* snprintf example */
#include <stdio.h>

int main ()
{
  char buffer [100];
  char strAdd[] = "neshto drugo";

   snprintf ( buffer, sizeof(buffer)-1, "alabala  %s", strAdd);
  return 0;
}


Вто Сеп 26, 2017 6:22 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пет Фев 04, 2005 8:59 pm
Мнения: 6019
Местоположение: София
Мнение Re: NULL terminated string appending
syscop написа:
Нещо такова ?

Код:
char str[9] = "1234";
char *str2 = "5678";
strcpy(&str[strlen(str)], str2);


А ти това тествал ли си го?
Код:
#include <stdio.h>
#include <string.h>

int main()
{
    char str[9] = "1234";
    char *str2 = "56789012345678901234567890";
    strcpy(&str[strlen(str)], str2);
    //printf("%s\n",str);
    return 0;
}
(sic)

_________________
Warriors of the Night, ASSEMBLER!!!


Сря Сеп 27, 2017 2:45 am
Профил
Online
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пет Юни 03, 2005 8:39 pm
Мнения: 1972
Мнение Re: NULL terminated string appending
Какво има да се тества ?

_________________
Определянето стойността на дадена величина се нарича ИЗМЕРВАНЕ!


Сря Сеп 27, 2017 5:42 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пон Мар 13, 2006 12:59 pm
Мнения: 3855
Местоположение: Габрово
Мнение Re: NULL terminated string appending
Взривът който се очаква като се изпълни strcpy...


Сря Сеп 27, 2017 7:31 am
Профил
Online
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пет Юни 03, 2005 8:39 pm
Мнения: 1972
Мнение Re: NULL terminated string appending
Да, де... То е очеизвадно, така че не виждам какво има да му се тества.

_________________
Определянето стойността на дадена величина се нарича ИЗМЕРВАНЕ!


Сря Сеп 27, 2017 8:11 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Яну 01, 2012 7:04 pm
Мнения: 2593
Местоположение: Велико Търново / София
Мнение Re: NULL terminated string appending
Измислих го :) :
Код:
void AppendString(char * mainstring, char * appended)
{
    while(* mainstring != 0x00){
        mainstring++;
    }
    while(* appended != 0x00){
        * mainstring = * appended;
        mainstring++;
        appended++;
    }
    * mainstring = 0x00;
}

Ако на някой му трябва да знае, че работи. Може със char mainstring[n], може и със char * mainstring . n - брой символи примерно 32. Само трябва да се внимава да не се "излезе" от масива.

_________________
https://github.com/slav4ocom/


Вто Окт 31, 2017 10:47 pm
Профил
Online
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пет Юни 03, 2005 8:39 pm
Мнения: 1972
Мнение Re: NULL terminated string appending
Написал си strlen - първия цикъл и strcpy - втория :)

_________________
Определянето стойността на дадена величина се нарича ИЗМЕРВАНЕ!


Сря Ное 01, 2017 11:17 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Яну 01, 2012 7:04 pm
Мнения: 2593
Местоположение: Велико Търново / София
Мнение Re: NULL terminated string appending
Ами на коя библиотека са тези функции.

_________________
https://github.com/slav4ocom/


Сря Ное 01, 2017 1:29 pm
Профил
Online
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пет Юни 03, 2005 8:39 pm
Мнения: 1972
Мнение Re: NULL terminated string appending
string.h

_________________
Определянето стойността на дадена величина се нарича ИЗМЕРВАНЕ!


Сря Ное 01, 2017 1:31 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Яну 01, 2012 7:04 pm
Мнения: 2593
Местоположение: Велико Търново / София
Мнение Re: NULL terminated string appending
Аха ами може и така, ама от бързане... чучка писатель, чукча не читатель... :)

_________________
https://github.com/slav4ocom/


Сря Ное 01, 2017 2:07 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 8:21 pm
Мнения: 28024
Местоположение: София
Мнение Re: NULL terminated string appending
Не си го написал коректно. Представи си че масива е пълен, какво ще стане, може никога да нр излезеш от тоя цикъл, или по вероятно да излезеш но да пишеш нялъде другаде в паметта, защото пойнтера ще излезе извън адреса на декларирания от теб масив.


Чет Ное 02, 2017 9:26 am
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 17 мнения ]  Отиди на страница 1, 2  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 6 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни