-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

您需要初始化变量ab. 我是这样想的

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 回答
0

为什么不试试这个。toascii()包含在头文件中的函数ctype.h基本上将字符转换为其 ASCII 值,但由于 a 的 ascii 是 97,我们可以减去 96 并得到 a 为 1,b 为 2,依此类推。如果你愿意,你可以检查字符是大写还是小写并使其高级。但是现在我只包含了一个简单的小写字母。希望你得到你的答案。

    #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 回答