[解決済み] *初級* C: 'char' 型のパラメータに 'const char *' を渡す、互換性のない整数からポインタへの変換。
2022-02-16 02:27:58
質問
文字列の各文字をASCII番号に変換しようとしています。 使用方法
int letter = (atoi(ptext[i]));
を実行すると、このようなエラーが発生します。
error: incompatible integer to pointer conversion
passing 'char' to parameter of type 'const char *'; take the
address with & [-Werror]
int letter = (atoi(ptext[i]));
^~~~~~~~
&
/usr/include/stdlib.h:148:32: note: passing argument to parameter
'__nptr' here
extern int atoi (__const char *__nptr)
以下は、関連すると思われる私のコードの残りの部分です。
#include <cs50.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
int main(int argc, string argv[])
{
printf("Give a string to cipher:\n");
string ptext = GetString();
int i = 0;
if (isupper(ptext[i]))
{
int letter = (atoi(ptext[i]));
}
}
文字列をASCII値に変換できるようにするには、何が間違っていて、どう修正すればいいのでしょうか?
注意してください。
cs50.h
を使うと、" が使えるようになります。
string
の代わりに "を使用します。
char*
"をmainに追加しました。
解決方法は?
文字から数値への変換は必要ありません。データの解釈の問題です。
Aという文字列は0x41や65と考えることができるので、これは全く問題ないです。
int number = 'A';
で、変数番号の値は0x41/65または1000001bです。
解釈としては、0xFFを符号無しで表示すると255、符号付きで8ビットで表示すると-1として扱われる可能性があります。
では、ご質問の件です。
<ブロッククオートは、文字列をASCII値に変換することができますか?
文字列のすべての文字はすでにアスキー値であり、それをどのように扱い、印刷し、解釈し、表示するかの問題なのです。
関連
-
[解決済み】エラー:cの入力の最後に期待される宣言またはステートメント
-
[解決済み] strtokのセグメンテーションフォールト
-
[解決済み】警告:互換性のないポインタ型からの代入
-
[解決済み】ポインタへの代入時に互換性のないポインタ型からの初期化警告が発生した
-
[解決済み] clang: error: linker command failed with exit code 1が表示されるのはなぜですか?
-
[解決済み】スレッド1:EXC_BAD_ACCESS(コード=1、アドレス=0x0)標準Cメモリ問題
-
[解決済み】MB/sとMiB/sを計算する方法は?
-
[解決済み】 「配列のイニシャライザーはイニシャライザーリストまたは文字列リテラルでなければなりません」と表示されるのですが?
-
[解決済み】C言語で入力が整数型かどうかチェックする
-
[解決済み] char pointers: 'char*' から 'char' への無効な変換?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】「ポインタから異なるサイズの整数へのキャスト」エラーが発生するのはなぜですか?
-
[解決済み] strtokのセグメンテーションフォールト
-
[解決済み】GCC Cコードで静的宣言が非静的宣言に続くことを解決するには?
-
[解決済み】スレッド1:EXC_BAD_ACCESS(コード=1、アドレス=0x0)標準Cメモリ問題
-
[解決済み] [Solved] なぜこのようなエラーが発生するのでしょうか。「データ定義に型またはストレージクラスがない」?
-
[解決済み】エラー。非スカラー型への変換を要求された
-
[解決済み】 「配列のイニシャライザーはイニシャライザーリストまたは文字列リテラルでなければなりません」と表示されるのですが?
-
[解決済み】スタックスマッシュを検出しました
-
[解決済み】.axfファイルとは何ですか?
-
[解決済み】シンプルなC言語のscanfが機能しない?重複