0
我想轉換一些代碼,這意味着從命令行參數中除了「_」以外的所有非數字字符除外,而不是命令行參數I想獲得的代碼從一個普通字符串接受輸入,我試圖代碼接受字符串轉換,但我不斷收到此錯誤我怎樣才能得到isalnum()正確接受字符串
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;
}
我認爲他真正打算做的只是p = stg –
@VictorVasiliev可能是: - ?或者,也許跳過第一個元素是故意的? – cnicutar
謝謝!我很驚訝地忽略了這一點,雖然希望這種類型的東西在未來會小得多,但我認爲這樣做會很好,也@VictorVasiliev感謝您指出了這一點,儘管stg本身並沒有工作,所以我只需stg [0] – lacrosse1991