nixp.ru v3.0

22 января 2017,
воскресенье,
06:47:07 MSK

DevOps с компанией «Флант»
My-SQL написал 4 января 2005 года в 01:02 (331 просмотр) Ведет себя неопределенно; открыл 4 темы в форуме, оставил 1 комментарий на сайте.

$variable=’value’; $string=’Variable=’.$variable.' \n’;

Переписываю приложение с ПХП на Ц:

Вот приближенный к жизни вариант, который проглатывает GCC:

#include

char *Table, *User, Query;

int main (int argc, char **argv) {

Table=«users»; User=«Vasya»; printf(«Table=%s\nUser=%s\n»,Table,User);

Query=sprintf(«select password from %s where login=’%s’»,Table,User);

printf(«Query=%s»,Query);

exit(0); }

Но происходит крах во время исполнения:

./strcat

Table=users

User=Vasya

Bus error (core dumped)

Странно то, что в прототипе:

cat /usr/include/stdio.h | grep sprintf

int sprintf(char * __restrict, const char * __restrict, …);

А ведь int != char , не так ли. Как же всё-таки на Ц записать выражение:

строка2 = строка1 + строка0;

Uncle Theodore

Ну, например, так

#include 
int main()
{
  char *table = "table", *user = "Vasja";
  char *Query = (char*)malloc(40);
  sprintf(Query,"Table=%s, User=%s\n", table, user);
  printf("%s", Query);
   free(Query);
   return 0;
};

А вообще, надо читать man string (там много интересного) и man sprintf (прежде чем использовать эту функцию)

Good Luck,

UT

decvar

лучше snprintf

ecobeingecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.