从C中的字符串中删除非字母数字字符

从C中的字符串中删除非字母数字字符,c,C,我正试图找出如何从第一原理中删除C语言中非字母数字的字符,我几乎已经找到了答案,但还不是很清楚。下面是最后一个print语句,用于比较我的已排序字符串和未排序字符串 #include <stdio.h> #include <string.h> #include <ctype.h> int main(void) { char inputString[50]; scanf("%[^\n]%*c", inputString);

我正试图找出如何从第一原理中删除C语言中非字母数字的字符,我几乎已经找到了答案,但还不是很清楚。下面是最后一个print语句,用于比较我的已排序字符串和未排序字符串

#include <stdio.h>
#include <string.h>
#include <ctype.h>

int main(void) {
   char inputString[50];
   scanf("%[^\n]%*c", inputString);
   char holderString[50];
   int i = 0;
   int j = 0;
   while (i <= strlen(inputString)+1) {
    if (((inputString[i] >= 101) && (inputString[i] <= 132)) || ((inputString[i] >= 141) && (inputString[i] <= 172)))   {

      holderString[j] = inputString[i];
      j+=1;
    } i+=1;
   } printf("%s\n", holderString);
   printf("%s\n", inputString);

   return 0;
#包括
#包括
#包括
内部主(空){
字符输入字符串[50];
scanf(“%[^\n]%*c”,输入字符串);
char-holderString[50];
int i=0;
int j=0;

而(i=101)&&(inputString[i]=141)&&(inputString[i]您给出的整数边界与ASCII码不匹配。例如,
'H'
为72

正如评论者所建议的那样,您应该使用
char
literals,而不是阅读ASCII表

if ( ( inputString[i] >= 'A' && inputString[i] <= 'Z' )
        || ( inputString[i] >= 'a' && inputString[i] <= 'z' )
        || ( inputString[i] >= '0' && inputString[i] <= '9' ) ) {

if((inputString[i]>='A'&&inputString[i]='A'&&inputString[i]='0'&&inputString[i]您给出的整数边界与ASCII码不匹配。例如,
'H'
为72

正如评论者所建议的那样,您应该使用
char
literals,而不是阅读ASCII表

if ( ( inputString[i] >= 'A' && inputString[i] <= 'Z' )
        || ( inputString[i] >= 'a' && inputString[i] <= 'z' )
        || ( inputString[i] >= '0' && inputString[i] <= '9' ) ) {

if((inputString[i]>='A'&&inputString[i]='A'&&inputString[i]='0'&&inputString[i]为什么你的
条件
i
?您正在使用的代码是
八进制
表示,它们应该是
十进制
,无论如何,最好使用字符文本而不是代码。您是否在调试器中运行程序并逐行遍历代码?一些小提示:不要对ascii值使用幻数。所有值都是错误。
101
不是
A
。您查看的是八进制列,而不是十进制列。请改用文本
'A
,以避免此类错误。为什么
while
条件
i
?您正在使用的代码是
八进制
表示,它们应该是
十进制
,无论如何,最好使用字符文本而不是代码。您是否在调试器中运行程序并逐行遍历代码?一些小提示:不要对ascii值使用幻数。所有值都是错误。
101
不是
A
。您查看的是八进制列,而不是十进制列。请使用文字
'A
,以避免此类错误。
isalnum
是一个很好的建议,OP似乎忘记了代码中的num部分。这是它指出基本问题而不仅仅是givin的最好建议g一个简单的回答,从长远来看没有帮助谢谢你的回答isalnum是一个很好的建议,OP似乎忘记了代码中的num部分。这是最好的建议,它指出了根本性的问题,而不仅仅是给出一个简单的回答,从长远来看没有帮助谢谢你的回答