读书人

C语言的小疑点真心搞不定

发布时间: 2013-01-01 14:04:19 作者: rapoo

C语言的小问题,真心搞不定。

数据库里的NULL和空字符串是不一样的(谷歌一下数据库中的NULL吧!)  要用ISNULL函数判断  不能用字符串相关函数判断
[解决办法]
NULL是一个重要的知识点
[解决办法]
不知道你的表具型是怎的?


char *abcd;
//abcd = (char *)malloc(sizeof(char*) * 30);
//是不需要分配内存

// db_op_result = sqlite3_step(stmt);
ncols=sqlite3_column_count(stmt);
建你上面句打,debug 看看到底有字段。


printf("循环\n");
while(sqlite3_step(stmt) == SQLITE_ROW){
card_num_inuse = (char *) sqlite3_column_text(stmt, 0);
user_name_result = (char *) sqlite3_column_text(stmt, 1);
abcd = (char *) sqlite3_column_text(stmt,2);


printf("nimei1\n");
printf("%s",card_num_inuse);
printf("nimei2\n");
printf("%s",user_name_result);
printf("nimei3\n");
printf("%s",abcd);//打印这里没问题
printf("%d",strlen(abcd));//这里出现Segmentation fault

// strcpy(tmp,tvcolwm);
// if(strlen(tvcolwm) == 0){
// printf("这是空字符串啦,有问题的\n");
// }
printf("\n");
}

dm.db文件,法debug你找原因。
[解决办法]
是不是用了中文?

[解决办法]
判断一下abcd是否为NULL
[解决办法]
有可能是这个原因,你用utf-8编码试试看。
[解决办法]

引用:
引用:判断一下abcd是否为NULL

是啊,我就是想判断一下它是不是空,我用C的函数对它操作,就说Segmentation fault。不管是strlen还是strcmp都报这个,没辙了。


这么判断一下
if(abcd != NULL)
[解决办法]
你要不用这个函数看看,
sqlite3_column_text16()

用来获取utf-16编码的文本。

读书人网 >C语言

热点推荐