0

コマンドライン引数から「_」を除くすべての非数値文字を削除することを意図したコードを変換しようとしていますが、コマンドライン引数の代わりに、通常の文字列からの入力を受け入れるようにコードを取得しようとしています。文字列を受け入れるようにコードを変換しようとしましたが、このエラーが発生し続けます

words.c:9: warning: assignment makes pointer from integer without a cast

私は何が間違っているのか混乱しているので、この問題で得られる助けを本当に感謝しています。ありがとう!

また、コマンドライン引数を受け入れる元のコードは次のとおりです

#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main(int argc, char ** argv) {
    int i;
    char *p;
    if (argc > 1) {
        for (p = argv[1]; *p != '\0'; p++) {
           if (islower(*p) || isdigit(*p) || *p == '_') {
               putchar (*p);
           }
        }
        putchar ('\n');
    }
    return 0;
}

これが私の「バージョン」です

#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main(void) {
    int i;
    char *p;
    char stg[] = "hello";
   // if (argc > 1) {
        for (p = stg[1]; *p != '\0'; p++) {
           if (isalnum(*p) || *p == '_') {
               putchar (*p);
           }
        }
        putchar ('\n');
     return 0;
}
4

1 に答える 1

3

あなたのコードpにはポインタがあります。に変更p = stg[1];p = &stg[1];ます。

于 2012-05-11T21:57:42.027 に答える