arrays - 字符串转整数的问题
问题描述
(我对编码和 C 都很陌生。)
我想检查“string argv”中的第一个字符串是否是一个或多个小数,以及是否将其转换为整数。我想我可能需要遍历字符串,但到目前为止这段代码不起作用。它说分段错误。
这是我的代码:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <math.h>
#include <stdlib.h>
int main (int argc, string argv [])
{
//check command line
if (argc == 2)
{
printf("success");
}
else
{
printf("Usage: ./caesar key.");
}
//validate number
if (isdigit (argv[1]))
{
int x = atoi(argv[1]);
printf("I is now %i\n", x);
return 0;
}
if (isalpha(argv[1]))
{
printf("Usage: ./caesar key\n");
return 1;
}
}
解决方案
main
函数接受 (int argc, char *argv[]) 参数。argv 是指向指针的指针,而 argv[1] 也是指向 char 数组的指针。isdigit
您应该向and发送一个字符,而isalpha
不是一个指针。您可能因此而遇到分段错误。
推荐阅读
- jquery - jQuery 不能在带有 Webpacker 的 Rails 6 中工作
- kubernetes - 无法掌舵安装rabbitmq服务器(掌舵2.16.9):命名空间“兔子”被禁止
- python - 在 Anaconda Spyder 环境中运行时没有名为 coremltools 的模块
- angular - 如何清除primeng中的吐司消息?
- apache-kafka - GCP Dataflow 在 python 中是否支持 kafka IO?
- flask - 由于条件,Flash 消息未显示
- javascript - 在 ASP.NET CORE MVC 中使用带有传单地图的 SQL 数据库中的纬度和经度显示标记
- git - Mac ZSH shell “忘记” ssh 密钥
- c# - 如何在 sharpsvn.merge() 中发生冲突
- python-3.x - 使用 cv2.imshow 时获取此黑色窗口而不是图片