C 在查询中填充/插入值
我是C语言的新手,我正在尝试用SQLITE3DB编写简单的程序 我有这样的疑问:C 在查询中填充/插入值,c,string,replace,sqlite,str-replace,C,String,Replace,Sqlite,Str Replace,我是C语言的新手,我正在尝试用SQLITE3DB编写简单的程序 我有这样的疑问: sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS) " \ "VALUES (1, 'Paul', 32, 'California' ); " \ sprintf(sql, "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS) " "VALUES (%d, '%s', %d, '%s');", 1, "Paul", 32,
sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS) " \
"VALUES (1, 'Paul', 32, 'California' ); " \
sprintf(sql, "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS) "
"VALUES (%d, '%s', %d, '%s');", 1, "Paul", 32, "California");
我有char*变量中的值,是否可以像printf一样使用%s,例如:
sql = somefunction("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS) " \
"VALUES (%d, '%s', %d, '%s');", 1, 'Paul', 32, 'California');
如果无法做到这一点,那么最好的方法是什么
谢谢
Create a buffer and fill it with the string using sprintf.
Here's a very generic example:
int main ()
{
char buffer [50];
int n, a=5, b=3;
n=sprintf (buffer, "%d plus %d is %d", a, b, a+b);
printf ("[%s] is a string %d chars long\n",buffer,n);
return 0;
}
Output:
[5 plus 3 is 8] is a string 13 chars long
使用sprintf创建一个缓冲区并用字符串填充它。
下面是一个非常通用的示例:
int main()
{
字符缓冲区[50];
int n,a=5,b=3;
n=sprintf(缓冲区,“%d加上%d等于%d”,a,b,a+b);
printf(“[%s]是一个字符串%d个字符长\n”,缓冲区,n);
返回0;
}
输出:
[5加3等于8]是长度为13个字符的字符串
使用sprintf创建一个缓冲区并用字符串填充它。
下面是一个非常通用的示例:
int main()
{
字符缓冲区[50];
int n,a=5,b=3;
n=sprintf(缓冲区,“%d加上%d等于%d”,a,b,a+b);
printf(“[%s]是一个字符串%d个字符长\n”,缓冲区,n);
返回0;
}
输出:
[5加3等于8]是长度为13个字符的字符串
使用sprintf创建一个缓冲区并用字符串填充它。
下面是一个非常通用的示例:
int main()
{
字符缓冲区[50];
int n,a=5,b=3;
n=sprintf(缓冲区,“%d加上%d等于%d”,a,b,a+b);
printf(“[%s]是一个字符串%d个字符长\n”,缓冲区,n);
返回0;
}
输出:
[5加3等于8]是长度为13个字符的字符串
使用sprintf创建一个缓冲区并用字符串填充它。
下面是一个非常通用的示例:
int main()
{
字符缓冲区[50];
int n,a=5,b=3;
n=sprintf(缓冲区,“%d加上%d等于%d”,a,b,a+b);
printf(“[%s]是一个字符串%d个字符长\n”,缓冲区,n);
返回0;
}
输出:
[5加3等于8]是长度为13个字符的字符串
看起来适合您的问题(在C89中介绍)
现在只需做如下操作:
sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS) " \
"VALUES (1, 'Paul', 32, 'California' ); " \
sprintf(sql, "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS) "
"VALUES (%d, '%s', %d, '%s');", 1, "Paul", 32, "California");
要防止缓冲区溢出,请使用(在C99中介绍)。看起来适合您的问题(在C89中介绍)
现在只需做如下操作:
sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS) " \
"VALUES (1, 'Paul', 32, 'California' ); " \
sprintf(sql, "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS) "
"VALUES (%d, '%s', %d, '%s');", 1, "Paul", 32, "California");
要防止缓冲区溢出,请使用(在C99中介绍)。看起来适合您的问题(在C89中介绍)
现在只需做如下操作:
sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS) " \
"VALUES (1, 'Paul', 32, 'California' ); " \
sprintf(sql, "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS) "
"VALUES (%d, '%s', %d, '%s');", 1, "Paul", 32, "California");
要防止缓冲区溢出,请使用(在C99中介绍)。看起来适合您的问题(在C89中介绍)
现在只需做如下操作:
sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS) " \
"VALUES (1, 'Paul', 32, 'California' ); " \
sprintf(sql, "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS) "
"VALUES (%d, '%s', %d, '%s');", 1, "Paul", 32, "California");
要防止缓冲区溢出,请使用(在C99中引入)。
'Paul'
和'California'
->“Paul”
和“California”
您的意思是什么?还有,您所说的可能是什么意思?somefunction()
的用途是什么?要打印成字符串,sprintf()
可能会很方便,如果您需要的话。是的,我是说“Paul”和“California”,我在变量中有这些值。somefunction()-是否有任何函数可以用给定的值替换%s。'Paul'
和'California'
->“Paul”
和“California”
您的意思是什么?还有,您所说的可能是什么意思?somefunction()
的用途是什么?要打印成字符串,sprintf()
可能会很方便,如果您需要的话。是的,我是说“Paul”和“California”,我在变量中有这些值。somefunction()-是否有任何函数可以用给定的值替换%s。'Paul'
和'California'
->“Paul”
和“California”
您的意思是什么?还有,您所说的可能是什么意思?somefunction()
的用途是什么?要打印成字符串,sprintf()
可能会很方便,如果您需要的话。是的,我是说“Paul”和“California”,我在变量中有这些值。somefunction()-是否有任何函数可以用给定的值替换%s。'Paul'
和'California'
->“Paul”
和“California”
您的意思是什么?还有,您所说的可能是什么意思?somefunction()
的用途是什么?要打印成字符串,sprintf()
可能会很方便,如果您需要的话。是的,我是说“Paul”和“California”,我在变量中有这些值。somefunction()-是否有任何函数可以用给定值替换%s。