2013-04-02 2 views
-6

if, string[i]을 사용하는 문자열의 각 문자를 비교하는 방법 (i은 일련의 해트 문자열 임). 이 프로그램의 아이디어는 a = 1, b = 2와 같은 글자에 값을주고, 만약 내가 console ("a, b, a, b")에 단어를 쓰면, 1 + 2 + 1 + 2이다. 문자열의 끝까지 문자열의 각 문자를 비교하려고합니다. 이런 식으로 뭔가 : 당신은 변수 ab을 초기화하기 위해 필요문자열의 문자 비교

#include <stdio.h > 


int main() 
{ 
    char string1[20]; 


    char a='a', b='b', g='g', X='X', i='i', H='H', V='V', d='d', e='e', v='v', z='z', E='E', T='T', I='I', k='k', l='l', m='m', n='n', o='o', p='p', j='j', r='r', s='s', t='t', u='u', f='f', q='q', R='R', y='y', S='S', w='w', C='C', W='W', x='x', h='h', c='c', J='J', Z='Z'; 




    int rigi; 
    int sum; 

    printf (" my word is:\n"); 
    scanf("%19s ", string1); 



    sum=0; 
     for (rigi = 0; string1[rigi] !='\0'; rigi++) 
    { 

    if (string1[rigi]==a) {sum= sum +1;} else 
    if (string1[rigi]==b) {sum= sum +2;} else 
    if (string1[rigi]==g) {sum= sum +3;} else 
    if (string1[rigi]==d) {sum= sum +4;} else 
    if (string1[rigi]==e) {sum= sum +5;} else 
    if (string1[rigi]==v) {sum= sum +6;} else 
    if (string1[rigi]==z) {sum= sum +7;} else 
    if (string1[rigi]==E) {sum= sum +8;} else 
    if (string1[rigi]==T) {sum= sum +9;} else 
    if (string1[rigi]==i) {sum= sum +10;} else 
    if (string1[rigi]==k) {sum= sum +20;} else 
    if (string1[rigi]==l) {sum= sum +30;} else 
    if (string1[rigi]==m) {sum= sum +40;} else 
    if (string1[rigi]==n) {sum= sum +50;} else 
    if (string1[rigi]==I) {sum= sum +60;} else 
    if (string1[rigi]==o) {sum= sum +70;} else 
    if (string1[rigi]==p) {sum= sum +80;} else 
    if (string1[rigi]==J) {sum= sum +90;} else 
    if (string1[rigi]==r) {sum= sum +100;} else 
    if (string1[rigi]==s) {sum= sum +200;} else 
    if (string1[rigi]==t) {sum= sum +300;} else 
    if (string1[rigi]==V) {sum= sum +400;} else 
    if (string1[rigi]==u) {sum= sum +0;} else 
    if (string1[rigi]==f) {sum= sum +500;} else 
    if (string1[rigi]==q) {sum= sum +600;} else 
    if (string1[rigi]==R) {sum= sum +700;} else 
    if (string1[rigi]==y) {sum= sum +800;} else 
    if (string1[rigi]==S) {sum= sum +900;} else 
    if (string1[rigi]==C) {sum= sum +1000;} else 
    if (string1[rigi]==c) {sum= sum +2000;} else 
    if (string1[rigi]==Z) {sum= sum +3000;} else 
    if (string1[rigi]==w) {sum= sum +4000;} else 
    if (string1[rigi]==W) {sum= sum +5000;} else 
    if (string1[rigi]==x) {sum= sum +6000;} else 
    if (string1[rigi]==X) {sum= sum +7000;} else 
    if (string1[rigi]==j) {sum= sum +8000;} else 
    if (string1[rigi]==h) {sum= sum +9000;} else 
    if (string1[rigi]==H) {sum= sum +1000;} else 
    {sum=0;} 

     } 

    printf ("%d\n" , sum); 
    return 0; 

} 
+2

'P.S 나는 몇몇 장소에서 공백을 사용했습니다. '-> 어, 당신은 의도에 의해 읽을 수없고 읽을 수없는 코드를 게시 했습니까?! – nothrow

+0

설명 합계 1 = 1; 및 합계 2 = 2; – 999k

+1

코드는 코드 줄보다 더 많은 경고와 오류가 있습니다. –

답변

0

. 이렇게 생각합니다.

char a='a', b='b'; 

이 코드를 확인하십시오. 이게 니가 필요로하는 것 같아.

int main() 
{ 
    char string[20]; 
    char a='a', b='b'; 
    int i = 0; 
    int sum = 0; 
    printf (" my word is:\n"); 
    scanf ("%s", string); 

    for (i = 0; string[i] !='\0'; i++) 
    { 
     if (string[i]==a) 
     {    
      sum= sum + 1; 
     } 
     else if (string[i]==b) 
     { 
      sum= sum + 2; 
     } 
    } 
    printf ("%d\n" , sum); 
    return 0; 

} 
+0

디버그 오류를 원했던대로 작동하는 코드를 편집했습니다! 런타임 검사 실패 # 3 - 변수 "i"가 초기화되지 않고 사용 중입니다. 이것은 CRASH ERROR입니다. –

+0

와우 이것이 내 것보다 낫습니다.)))))) –

+0

그렇다면 오류를 읽고 코드를 살펴보십시오. 코드에서 변수 a, b, i 등을 초기화하지 않습니다. 첫 번째 요소에 액세스하려면 i는 0이어야합니다. 값 'a'에 대해 변수 a를 비교하려면 'a'로 초기화해야합니다. – 999k

0

toascii() 함수는 헤더 파일 ctype.h에 기본적으로 문자를 ASCII 값으로 변환하지만, a의 ascii는 97이므로 우리는 96을 빼고 a를 1, b를 2 등으로 할 수 있습니다. 당신이 원하는 경우 wheather 확인하실 수 있습니다 문자는 대문자 또는 소문자 및 고급. 하지만 지금은 간단한 편지 만 들어 보았습니다. 당신이 당신의 대답을 가지고 있기를 바랍니다.

#include<stdio.h> 
    #include<ctype.h> 
    #include<string.h> 
    main() 
    { 
    int i,value = 0; 
    char string[10]; 
    printf("Enter a word"); 
    scanf("%s",string); 
     for(i=0;i<strlen(string);i++) 
    { 
    value = value + (toascii(string[i]) - 96); 
    } 

     printf("the sum is = %d",value); 
    } 

당신이하려는 일이 무엇입니까 ?? 원하는 경우 눈금을 클릭 할 수 있습니다.

+0

이것은 어렵습니다. 메신저는 초보자 :( –

+0

바로 복사하고 실행 시도하고 문제 우리가 여기에서 나는 것은 내가 얻을 경우에만 , 난 실행할 동작의 ToASCII()하지만 병이 시도를 이해하지 못할 배운 –

+0

경우 각 라인을보고 하하이 작품!하지만 난 돈 방법을 아직 알고 ... :(하지만 난 곧 배울 병이 희망 –