2015-10-04 37 views
-2

如果我有一个字符串:
char cInputString[] = "Hello World";

我想通过它来进行迭代,并得到每个字符,我怎么这个值写在代码中的变量,我可以改用到终端的ASCII值?所以在第一轮我有一个变量ASCIIValue = 72;如何将字符的ASCII值读入C中的变量?

+6

提示:'char'是一个整数类型! – Olaf

+0

int H =(int)cInputString [0];其余的类似。 – Ritesh

+0

“for”循环将是一个很好的开始。 – OldProgrammer

回答

0

变量是asciiValue这里是你的代码:(我测试)

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

int * getASCIIValue(char *array) { 
    char c; 
    int i, ascii; 
    int result[100]; 


    for(i=0; array[i]; i++) { 
     ascii = (int)array[i]; 
     result[i] = ascii; 
    } 

    return result; 
} 

void main() 
{ 
    char cInputString[] = "Hello World"; 
    int asciiValue[100], i; 


    int *arr = getASCIIValue(cInputString); 

    for(i=0; i<strlen(cInputString); i++) { 
     asciiValue[i] = arr[i]; 
    } 

    for(i=0; i<strlen(cInputString); i++) { 
     printf("%d", asciiValue[i]); 
    } 

    system("pause"); 
} 
+0

辅助阵列'结果[]'供应没有益处和它限制正确使用尺寸100或更小的字符串。只要'printf(“%d”,cInputString [i]);'会做。 – chux

+0

@chux,他想要一个变量,而不是在终端上打印出来。 – 2015-10-04 15:45:24

+0

正如标题所说的“如何读取一个字符...的ASCII值”,即意味着OP想读一些输出,如在终端打印出来。代码已经具有变量'cInputString []',其中包含ASCII值。复制到'result []'给出OP 2副本。 – chux

0

的ASCII值是字符串中的每个字符的值。只需索引字符串即可检索它们。要

for (unsigned int idx = 0; idx < strlen(cInputString); idx++) { 
    ASCIIValue = cInputString[idx]; 
} 
+1

不是'size_t'而不是'unsigned int'更好吗? –

+1

尽管此代码可以回答这个问题,提供有关为什么和/或如何代码回答了这个问题提高了其长期价值的其他方面。 – JAL

2
for (size_t idx = 0; idx < strlen(cInputString); idx++) { 
    printf("ascii of %c = %d \n",cInputString[idx],cInputString[idx]); 
} 
+1

不是'size_t'而不是'unsigned int'更好吗? –

相关问题