At 1/20/2007 02:19 AM, you wrote:
At 15:46 2007-01-16, Rick wrote:
At 1/16/2007 04:01 PM, you wrote:
Hi

I want to write a program that reads a string s then sums the number assciated to each string in teh alphabet like the following schema:
a=1,b=2,c=3,d=4,e=5,f=6,g=7,h=8,i=9,j=10,k=20,l=30,m=40,n=50,o=60,p=70,
q=80,r=90,s=100,t=200,u=300,v=400,w=500,x=600,y=700,z=800.

I wrote the following program for the first 10 characters of the schema. But it didn't work properly.

can u fix it?

Here is the program:
================


int main(int argc, char *argv[])
{
  char *s;
  int *t,n,a=0,i;

  cout << "Enter a string";
  cin >> s ;
  n=strlen(s);
  for (i=0;i<n;i++)
  {
    switch(s[i])
    {
        case 'a':
              {a=a+1;
              t[1]=a;}

        case 'b':
               {a=a+1;
              t[2]=a;}

        case 'c':
               {a=a+1;
              t[3]=a;}
        case 'd':
               {a=a+1;
              t[4]=a;}
        case 'e':
               {a=a+1;
              t[5]=a;}
        case 'f':
               {a=a+1;
              t[6]=a;}
        case 'g':
               {a=a+1;
              t[7]=a;}
        case 'h':
               {a=a+1;
              t[8]=a;}
        case 'i':
               {a=a+1;
              t[9]=a;}
        case 'j':
               {a=a+1;
              t[10]=a;}


    }
       a=a+t[i];

  }
  cout << "the length is " << a;
  system("PAUSE");
  return 0;
}


Mohammed

I'm not the best programmer around, but I would not use a switch statement. I would do something like this:

#include <cstdlib>

why???

#include <iostream>

using namespace std;

// Add each letter in the supplied string using the following values:

// a=1,b=2,c=3,d=4,e=5,f=6,g=7,h=8,i=9,j=10,k=20,l=30,m=40,n=50,o=60,p=70,
// q=80,r=90,s=100,t=200,u=300,v=400,w=500,x=600,y=700,z=800.

int main(int argc, char *argv[])
{

  char *str;
  int val;
  int idx;
  int num;
  int tmp;
int values[26] = {1,2,3,4,5,6,7,8,9,10,20,30,40,50,60,70,80,90,100,200,300,400,500,600,700,800};

  cout << "Enter a string: ";
  cin >> str;

and your program will blow up..... if you're using C++ forget about all the damned char* and strxxx() crap

Yes, I know. I forgot to allocate memory for str, but I corrected that.

I'm using C, not C++, so this is perfectly valid. Why get in such a huff?


  num=strlen(str);
  for (val=idx=0;idx<num;idx++)
  {
      tmp = str[idx]-'a';
      val += values[tmp];
  }
  cout << "The sum is " << val << endl;

    system("PAUSE");
    return EXIT_SUCCESS;
}

~Rick


No need to miss a message. <http://us.rd.yahoo.com/evt=43910/*http://mobile.yahoo.com/mail>Get email on-the-go with Yahoo! Mail for Mobile. <http://us.rd.yahoo.com/evt=43910/*http://mobile.yahoo.com/mail>Get started.

Victor A. Wagner Jr.      http://rudbek.com
The five most dangerous words in the English language:
"There oughta be a law"

Reply via email to