Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

NULL terminated string appending
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=15506
Страница 1 от 2

Автор:  slav4o.com [ Вто Сеп 26, 2017 5:11 pm ]
Заглавие:  NULL terminated string appending

Имам
char * string = "alabala";
Искам обаче да допълня този низ примерно със "neshto drugo" и да се получи string = "alabala neshto drugo". Поради структурата на програмата не мога отначало да направя целия стринг.
Кой е най-лесният начин ? Компилатора е MPLABX - XC8

Автор:  TheWizard [ Вто Сеп 26, 2017 5:37 pm ]
Заглавие:  Re: NULL terminated string appending

#define AA "neshto drugo"
#define BB "alabala"
char * string = AABB;

Автор:  syscop [ Вто Сеп 26, 2017 6:25 pm ]
Заглавие:  Re: NULL terminated string appending

Нещо такова ?

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

Автор:  TheWizard [ Вто Сеп 26, 2017 6:32 pm ]
Заглавие:  Re: NULL terminated string appending

или strcat

Автор:  gicho [ Вто Сеп 26, 2017 7:22 pm ]
Заглавие:  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;
}

Автор:  ike [ Сря Сеп 27, 2017 3:45 am ]
Заглавие:  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)

Автор:  syscop [ Сря Сеп 27, 2017 6:42 am ]
Заглавие:  Re: NULL terminated string appending

Какво има да се тества ?

Автор:  gicho [ Сря Сеп 27, 2017 8:31 am ]
Заглавие:  Re: NULL terminated string appending

Взривът който се очаква като се изпълни strcpy...

Автор:  syscop [ Сря Сеп 27, 2017 9:11 am ]
Заглавие:  Re: NULL terminated string appending

Да, де... То е очеизвадно, така че не виждам какво има да му се тества.

Автор:  slav4o.com [ Вто Окт 31, 2017 11:47 pm ]
Заглавие:  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. Само трябва да се внимава да не се "излезе" от масива.

Автор:  syscop [ Сря Ное 01, 2017 12:17 pm ]
Заглавие:  Re: NULL terminated string appending

Написал си strlen - първия цикъл и strcpy - втория :)

Автор:  slav4o.com [ Сря Ное 01, 2017 2:29 pm ]
Заглавие:  Re: NULL terminated string appending

Ами на коя библиотека са тези функции.

Автор:  syscop [ Сря Ное 01, 2017 2:31 pm ]
Заглавие:  Re: NULL terminated string appending

string.h

Автор:  slav4o.com [ Сря Ное 01, 2017 3:07 pm ]
Заглавие:  Re: NULL terminated string appending

Аха ами може и така, ама от бързане... чучка писатель, чукча не читатель... :)

Автор:  ToHu [ Чет Ное 02, 2017 10:26 am ]
Заглавие:  Re: NULL terminated string appending

Не си го написал коректно. Представи си че масива е пълен, какво ще стане, може никога да нр излезеш от тоя цикъл, или по вероятно да излезеш но да пишеш нялъде другаде в паметта, защото пойнтера ще излезе извън адреса на декларирания от теб масив.

Страница 1 от 2 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/