Logo 
Search:

C Programming Articles

Submit Article
Home » Articles » C Programming » BeginnersRSS Feeds

String functions

Posted By: Freya Brown     Category: C Programming     Views: 3845

Program of string functions.

Code for String functions in C Programming

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <alloc.h>

int search ( char *, char ) ;
int isequals ( char *, char * ) ;
int issmaller ( char *, char * ) ;
int isgreater ( char *, char * ) ;
char * getsub ( char *, int, int ) ;
char * leftsub ( char *, int n ) ;
char * rightsub ( char *, int n ) ;
void upper ( char * ) ;
void lower ( char * ) ;
void reverse ( char * ) ;
int replace ( char *, char, char ) ;
int setat ( char *, char, int ) ;

void main( )
{
    char s1[ ] = "Hello" ;
    char s2[ ] = "Hello World" ;
    char s3[ ] = "Four hundred thirty two" ;
    char ch, *s ;
    int i ;

    clrscr( ) ;

    printf ( "\nString s1: %s", s1 ) ;

    /* check for the first occurrence of a character */
printf ( "\nEnter character to search: " ) ; scanf ( "%c", &ch ) ; i = search ( s1, ch ) ; if ( i != -1 ) printf ( "The first occurrence of character %c is found at index no. %d\n", ch, i ) ; else printf ( "Character %c is not present in the list.\n", ch ) ; printf ( "\nString s2: %s", s2 ) ; /* compares two strings s1 and s2 */
i = isequals ( s1, s2 ) ; if ( i == 1 ) printf ( "\nStrings s1 and s2 are identical" ) ; else printf ( "\nStrings s1 and s2 are not identical") ; i = issmaller ( s1, s2 ) ; if ( i == 1 ) printf ( "\nString s1 is smaller than string s2" ) ; else printf ( "\nString s1 is not smaller than string s2" ) ; i = isgreater ( s1, s2 ) ; if ( i == 1 ) printf ( "\nString s1 is greater than string s2\n" ) ; else printf ( "\nString s1 is not greater than string s2\n" ) ; /* extract characters at given position */
printf ( "\nString s3: %s", s3 ) ; s = getsub ( s3, 5, 7 ) ; printf ( "\nSub string: %s", s ) ; free ( s ) ; /* extract leftmost n characters */
s = leftsub ( s3, 4 ) ; printf ( "\nLeft sub string: %s", s ) ; free ( s ) ; /* extract rightmost n characters */
s = rightsub ( s3, 3 ) ; printf ( "\nRight sub string: %s", s ) ; free ( s ) ; /* convert string to uppercase */
upper ( s3 ) ; printf ( "\nString in upper case: %s", s3 ) ; /* convert string to lowercase */
lower ( s3 ) ; printf ( "\nString in lower case: %s", s3 ) ; /* reverse the given string */
reverse ( s3 ) ; printf ( "\nReversed string: %s", s3 ) ; /* replace first occurrence of one char with new one */
replace ( s1, 'H' , 'M' ) ; printf ( "\nString s1: %s", s1 ) ; /* sets a char at a given position */
i = setat ( s1, 'M', 3 ) ; if ( i ) printf ( "\nString s1: %s", s1 ) ; else printf ( "\nInvalid position." ) ; getch( ) ; } /* check for the first occurrence of a character */
int search ( char *str, char ch ) { int i = 0 ; while ( *str ) { if ( *str == ch ) return i ; str++ ; i++ ; } return -1 ; } /* checks whether two strings are equal */
int isequals ( char *s, char *t ) { while ( *s || *t ) { if ( *s != *t ) return 0 ; s++ ; t++ ; } return 1 ; } /* checks whether first string is less than second */
int issmaller ( char *s, char *t ) { while ( *t ) { if ( *s != *t ) { if ( *s < *t ) return 1 ; elsereturn 0 ; } t++ ; s++ ; } return 0 ; } /* checks whether first string is greater than second */
int isgreater ( char *s, char *t ) { while ( *s ) { if ( *s != *t ) { if ( *s > *t ) return 1 ; elsereturn 0 ; } s++ ; t++ ; } return 0 ; } /* extracts the character at given position */
char * getsub ( char *str, int spos, int n ) { char *s = str + spos ; char *t = ( char * ) malloc ( n + 1 ) ; int i = 0 ; while ( i < n ) { t[i] = *s ; s++ ; i++ ; } t[i] = '\0' ; return t ; } /* extracts leftmost n characters from the string */
char * leftsub ( char *s, int n ) { char *t = ( char * ) malloc ( n + 1 ) ; int i = 0 ; while ( i < n ) { t[i] = *s ; s++ ; i++ ; } t[i] = '\0' ; return t ; } /* extracts rightmost n characters from the string */
char * rightsub ( char *str, int n ) { char *t = ( char * ) malloc ( n + 1 ) ; int l = strlen ( str ) ; char *s = str + ( l - n ) ; int i = 0 ; while ( i < n ) { t[i] = *s ; s++ ; i++ ; } t[i] = '\0' ; return t ; } /* converts string to uppercase */
void upper ( char *s ) { while ( *s ) { if ( *s >= 97 && *s <= 123 ) *s -= 32 ; s++ ; } } /* converts string to lowercase */
void lower ( char *s ) { while ( *s ) { if ( *s >= 65 && *s <= 91 ) *s += 32 ; s++ ; } } /* reverses a string */
void reverse ( char *str ) { int l = strlen ( str ) ; char ch, *t = ( str + l - 1 ) ; int i = 0 ; while ( i < l / 2 ) { ch = *str ; *str = *t ; *t = ch ; str++ ; t-- ; i++ ; } } /* replaces the first occurrence of char with new char */
int replace ( char *str, char oldch, char newch ) { while ( *str ) { if ( *str == oldch ) { *str = newch ; return 1 ; } str++ ; } return 0 ; } /* sets a char at a given position */
int setat ( char *str, char ch, int i ) { if ( i < 0 || strlen ( str ) < i ) return 0 ; * ( str + i ) = ch ; return 1 ; }
  
Share: 


Didn't find what you were looking for? Find more on String functions Or get search suggestion and latest updates.

Freya Brown
Freya Brown author of String functions is from London, United Kingdom.
 
View All Articles

Related Articles and Code:


 
Please enter your Comment

  • Comment should be atleast 30 Characters.
  • Please put code inside [Code] your code [/Code].

 
No Comment Found, Be the First to post comment!