Computers in Engineering - 308-208 Lecture 19
Computers in Engineering - 308-208


Lesson 19 - Learning Goals



19.1 Learn the rules for Mixed Arithmetic Expressions

19.2 Learn the C String functions

19.3 Learn the C vector functions



RESULT OF MIXED ARITHMETIC EXPRESSIONS

float f_value ;
double d_value ;
char c_value ;
short int s_value ;
long int l_value ;
int i_value ;

Expression
Type
c_value * i_value int
f_value - 7.3 double
d_value + c_value double
c_value - s_value int
s_value - l_value long int
s_value + 7 int
s_value - 7.0 double
7 + 7.0 double

EXAMPLE USE OF CASTS

double ratio, q, r ;
q = 7.0 ;
r = 2.0 ;
ratio = (int) q / (int) r ;

STRING FUNCTIONS

Functions
Arguments
Description
strcpy( ) char *s1, char *s2 copies s2 to s1 ; returns s1
strncpy( ) char *s1, char *s2, int n copies at most n characters of s2 to s1 ; returns s1
strcat( ) char *s1, char *s2 concatenates s2 to end of s1 ; returns s1
strncat( ) char *s1, char *s2, int n concatenates first n characters of s2 to end of s1 ; returns s1
strcmp( ) char *s1, char *s2 compares s1 to s2 ; returns < 0 if s1 < s2, 0 if s1 == s2 or > 0 if s1 > s2
strlen( ) char *s1 returns length of s1 ( not including `\0` )

PROGRAM USING STRING FUNCTIONS

/* test various functions in string library */
#include <stdio.h>
#include <string.h>

main ( )
{

   char string1[ ] = "document" ;
       /* first test string */
   char string2[ ] = "disk" ;
       /* second test string */
   char s3[20], s4 [20], s5[20] ;

   /* test string length */
   printf("Length of string 1 is %d\n",
            strlen(string1)) ;

   /* test string copy functions */
   strcpy(s3, string2) ;
   strncpy(s4, string2, 3) ;
   printf("Two copied strings are %s and %s \n", 
           s3, s4) ;

   /* test string concatenation functions */
   strcat(s3, string1) ;
   strncat(s4, string1, 3) ;
   printf("Two concatenated strings are %s and %s \n",
             s3, s4) ;

   /* test string comparison */
   if(strcmp(s3, s4)) printf("Strings are different \n") ;
   else 
      printf("Strings are identical \n") ;
}

OUTPUT :

Length of string1 is 8
Two copied strings are disk and dis
Two concatenated strings are disk document and disdoc
Strings are different

FUNCTION TO COMPUTE LENGTH OF A VECTOR

/* function to compute the length of a vector */

#include <math.h>
double length( double v[ ], int n)
{
   double total = 0.0 ;
   int i ;
   for( i=0 ; i<n ; i++ ) total += v[i] * v[i] ;
   return(sqrt(total)) ;
}

FUNCTION TO COMPUTE INNER PRODUCT OF TWO VECTORS

/* function to compute an inner product */

double inner_product( double v[ ], double w[ ], int n )
{
   double total = 0.0 ;
   int i ;
   for ( i=0 ; i<n ; i++ ) total += v[i] * w[i] ;
   return(total) ;
}


On to the next lecture
Go back to lecture menu

Copyright © 1996 McGill University. All rights reserved.