如何使用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;
}
答案 0 :(得分: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;
}
答案 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);
}
这是你想要做的吗? 如果符合您的要求,您可以点击刻度线。