-6

if,を使用して文字列の各文字を比較する方法string[i](iはハット文字列のシーケンスの番号です)。プログラムのアイデアは、a=1、b=2 のような文字に値を与えることです。コンソールに単語 ("a,b,a,b") を書き込むと、1+2+ の合計が得られます。 1+2。文字列の各文字を文字列の最後まで比較したい。このようなもの:

#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;

}
4

2 に答える 2

0

これを試してみませんか。toascii()ヘッダー ファイルctype.hに含まれる関数では、基本的に文字を ASCII 値に変換しますが、a の ascii は 97 であるため、96 を減算して、a を 1、b を 2 などのように取得できます。必要に応じて、文字が大文字か小文字かを確認して、高度にすることができます。しかし、今のところ、小文字のみの単純な on を含めました。答えが得られたことを願っています。

    #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);
     }

これはあなたがやろうとしていることですか?? 必要に応じて、目盛りをクリックできます。

于 2013-04-02T13:17:13.193 に答える
0

変数aとを初期化する必要がありますb。私はこう思う

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;

}
于 2013-04-02T13:05:59.997 に答える