c++的第二周,如果输入参数包含alpha字符,则需要返回错误
Second week of C++, input arguments need to return an error if they contain an alpha character
使用if控制语句编写程序,如果IDE程序输入参数包含一个alpha字符,则输出错误消息。
#include "stdafx.h"
#include <iostream>
#include <cstdlib>
using namespace std;
int main(int argc, char* argv[])
{
cout<<argv[1]<<endl;
cout<<argv[2]<<endl;
return 0;
}
很难知道你被困在哪里,但我会尽力帮助你。如果我把时间浪费在你已经知道的事情上,我很抱歉。
让我们假设您将此传递给程序(通过IDE或命令行):1156 q.p
argc
则是3(第一个参数是程序本身的名称),argv
看起来像这样:
argv[0] = "program_name";
argv[1] = "1156";
argv[2] = "q.p";
需要记住的事情:参数的数量是不固定的,如果你试图读取比传递给你的更多的参数,你的程序将崩溃。(从技术上讲,它会导致未定义的行为,这意味着任何事情都可能发生。)
C字符串只是字符数组,末尾有一个特殊的NULL字符,如下所示:
char program_name[] = {'p', 'r', 'o', 'g', 'r', 'a', 'm', 0};
字符可以像数字一样对待——实际上,它们就是数字。这两行都做同样的事情:
char a = 'a';
char a = 97;
这也意味着您可以比较它们:'a' == 97
和'a' < 'z'
。
ASCII字符映射方便:0-9、A-Z和A-Z分别映射到48-57、65-90和97-122。这意味着,例如,如果一个字符在'0'和'9'之间,则该字符是数字。
要测试字符串中的每个字符,需要循环遍历它。下面的例子检查字符串中的每个字符是否都是'X':
bool is_all_Xs(const char *str) {
for(int i = 0; str[i] != 0; ++i) {
if(str[i] != 'X') {
return false;
}
}
return true;
}
相关文章:
- C++字符*缓冲区的大小
- HEX值到wchar_t字符(UTF-8)的转换
- 为什么 Serial.println(<char[]>);返回随机字符?
- 我的字符计数代码计算错误.为什么
- 字符串-C++后显示的随机字符
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- 如何在C++中从字符串中分割字符
- 为什么msgrcv()将垃圾字符馈送到缓冲区
- 指向指向字符数组的指针数组的指针
- 如何用转义符替换字符串中的所有特殊字符
- 为什么 sscanf 无法从一个字符串中读取uint64_t和字符?
- 比较字符数组
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 从矢量<无符号字符>转换为字符* 包括垃圾数据
- 如何使用Crypto++并为RSA返回可打印的字节/字符数组
- 如何在C++中确定文本文件中的元素是字符还是数字
- 如何将一个ostringstream十六进制字符串字符对转换为单个unit8t等价的二进制值
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- 按Alpha顺序对2D字符数组进行排序
- c++的第二周,如果输入参数包含alpha字符,则需要返回错误