C ++で独自のatoi()を作成する
cプログラミング言語のatoi()関数は、文字列から整数への変換を処理するために使用されます。この関数は文字列を入力として受け取り、整数型の値を返します。
構文
int atoi(const char string)
受け入れられたパラメータ − atio()関数は、同等の整数に変換される入力として文字列を受け入れました。
返品タイプ −関数は整数値を返します。値は有効な文字列に相当する整数になります。それ以外の場合は0が返されます。
atoi()関数の実装-
文字列の各文字を取得し、前の結果に10を掛けた数値を加算して整数を作成します。
負の整数の場合、文字列の最初の文字が-であるかどうかを確認し、最終結果に-1を掛けます。
各文字が0から9の間にあるかどうかをチェックすることにより、有効な文字列をチェックします。
ソリューションの実装を示すプログラム
例
#include <iostream> using namespace std; bool isNumericChar(char x) { return (x >= '0' && x <= '9') ? true : false; } int myAtoi(char* str) { if (*str == '\0') return 0; int result = 0; int sign = 1; int i = 0; if (str[0] == '-') { sign = -1; i++; } for (; str[i] != '\0'; ++i) { if (isNumericChar(str[i]) == false) return 0; result = result * 10 + str[i] - '0'; } return sign * result; } int main() { char string[] = "-32491841"; int intVal = myAtoi(string); cout<<"The integer equivalent of the given string is "<<intVal; return 0; }
出力
The integer equivalent of the given string is -32491841
-
C ++で文字列をトークン化しますか?
最初の方法は、文字列ストリームを使用して、スペースで区切られた単語を読み取ることです。これは少し制限されていますが、適切なチェックを提供すれば、タスクはかなりうまくいきます。 例 #include <vector> #include <string> #include <sstream> using namespace std; int main() { string str("Hello from the dark side"); string tmp; // A string
-
独自のシーザー暗号エンコーダーの書き方
シーザー暗号について聞いたことがありますか ? ジュリアスシーザーはこのテクニックを使用して、敵からの秘密のメッセージを隠しました! シーザー暗号は、最も原始的な暗号化技術の1つです。 このシステムの背後にある主なアイデアは、文字を回転させることです。 x個のアルファベット上の位置 。 たとえば、x = 1の場合 、「A」は「B」になり、「C」は「D」になります。 では、これをコードでどのように実装するのでしょうか? よろしくお願いします。見た目ほど難しくはないことがわかりました。文字は数字(ASCIIコード)で表すことができるという事実を利用します。これにより、2つの数字を