c - 在C中将字符串解析为数字

标签 c

我尝试编写一个函数将字符串转换为 int:

int convert(char *str, int *n){
    int i;
    if (str == NULL) return 0;
    for (i = 0; i < strlen(str); i++)
        if ((isdigit(*(str+i))) == 0) return 0;
    *n = *str;
    return 1;
}

那么我的代码有什么问题吗?

最佳答案

*n = *str 表示: 将n指向的4字节内存设置为str指向的1字节内存。这完全没问题,但这可能不是您的本意。

为什么你首先要尝试将 char* 转换为 int* ?如果您实际上只需要进行转换并使编译器满意,您可以执行 int *foo = (int*)bar ,其中 barchar *.

抱歉,我没有资格对此发表评论。

关于c - 在C中将字符串解析为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50542872/

相关文章:

c - PostgreSQL ecpg 程序不保存对数据库的更改

objective-c - 什么是完成回调函数? C 或 Objective-C 中的示例?

c - 堆栈的 Pop 函数出现意外行为

c - 使用过程为变量赋值

c - C 中的 atoi 函数无法正常工作(超过某个值时)

c - "File scope"和 "program scope"有什么区别

c - 如何停止循环arduino

c - 从 C 中的内存中读取结构数据?

c - gcc 不会矢量化简单循环

c - 当我执行 malloc(1) 时,它在 char* 中分配 8 个空格,我不知道为什么