比较字符串的字符

时间:2013-04-02 12:41:04

标签: c string

如何使用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;

}

2 个答案:

答案 0 :(得分: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;

}

答案 1 :(得分: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);
     }

这是你想要做的吗? 如果符合您的要求,您可以点击刻度线。