首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2013-01-01 
C语言的小问题,真心搞不定。数据库里的NULL和空字符串是不一样的(谷歌一下数据库中的NULL吧!)要用ISNULL函

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编码的文本。

热点排行