很抱歉,如果这是一个非常简单的问题,但我对C非常新.我希望能够将char*s转换成双打和整数,似乎无法找到解释如何.
编辑:我正在阅读用户输入,这是一个char*.我希望将输入的一半(例如"23")转换为23和一半,例如,从"23.4"转换为23.4.
标准C库函数atoi在ISO 9899:2011中记录为:
7.22.1数字转换函数
1的功能
atof,atoi,atol,和atoll需要不影响整数表达式的值errno上的误差.如果无法表示结果的值,则行为未定义....
7.22.1.2的
atoi,atol和atoll功能概要
Run Code Online (Sandbox Code Playgroud)#include <stdlib.h> int atoi(const char *nptr); long int atol(const char *nptr); long long int atoll(const char *nptr);描述
2
atoi,atol和atoll函数转换字符串的初始部分指向nptr到int,long int和long long int表示,分别.除了出错的行为,它们相当于Run Code Online (Sandbox Code Playgroud)atoi: (int)strtol(nptr, (char **)NULL, 10) atol: strtol(nptr, (char **)NULL, 10) atoll: strtoll(nptr, (char **)NULL, 10)返回
3
atoi, …
我使用的是Mac OS X 10.6.5,使用XCode 3.2.1 64位来构建一个构建配置为10.6的C命令行工具.调试| x86_64的.我想传递一个正整数作为参数,所以我将argv的索引1作为一个int.这似乎工作,除了似乎我的程序获取ascii值而不是读取整个char数组并转换为int值.当我进入'progname 10'时,它告诉我我已进入49,这是我进入'progname 1'时也得到的.如何让C将整个char数组作为int值读取?谷歌只展示了我(int)*charPointer,但显然这不起作用.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int main(int argc, char **argv) {
char *programName = getProgramName(argv[0]); // gets the name of itself as the executable
if (argc < 2) {
showUsage(programName);
return 0;
}
int theNumber = (int)*argv[1];
printf("Entered [%d]", theNumber); // entering 10 or 1 outputs [49], entering 9 outputs [57]
if (theNumber % 2 != 0 || theNumber < 1) {
showUsage(programName);
return 0;
}
...
}
Run Code Online (Sandbox Code Playgroud) char * x =“a”;我如何将其转换为 char y='a';
另外,如果我有一个短 char * a="100" 我怎样才能将其转换为短 b=100
谢谢
所以我收到了这个警告:
initialization makes integer from pointer without a cast
Run Code Online (Sandbox Code Playgroud)
在下面的代码中:
void receive(u_char *args, const struct pcap_pkthdr *pkthdr, const u_char *buffer)
{
const int one = 1;
int LEN = args; /* THIS IS THE LINE */
struct ipheader *ip;
struct tcpheader *tcp;
Run Code Online (Sandbox Code Playgroud)
说实话,小新手我不知道该怎么办,因为几乎所有的搜索都会返回makes pointer from integer.
我也收到这些编译器消息:
/tmp/cci6u7NH.o: In function `main':
ChannelBunny.c:(.text+0x448): undefined reference to `pthread_create'
ChannelBunny.c:(.text+0x4b7): undefined reference to `pthread_join'
/tmp/cci6u7NH.o: In function `receive':
ChannelBunny.c:(.text+0xcb6): undefined reference to `nthol'
ChannelBunny.c:(.text+0xcdf): undefined reference to `nthol'
collect2: ld returned …Run Code Online (Sandbox Code Playgroud) 我刚开始使用C而且我正在尝试学习ATOL功能.有人能告诉我它为什么一直打印0?我知道这意味着转换无法执行,但我不确定原因.
#include <stdio.h>
#include <stdlib.h>
int main (void)
{
int i = atoi (" bl149");
printf("%d\n", i);
return 0;
}
Run Code Online (Sandbox Code Playgroud)