c++的第二周,如果输入参数包含alpha字符,则需要返回错误

Second week of C++, input arguments need to return an error if they contain an alpha character

本文关键字:字符 alpha 包含 错误 返回 参数 如果 c++ 二周 输入      更新时间:2023-10-16

使用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;
}