Computer History Notes - Herong's Tutorial Notes - v3.13, by Herong Yang
Sample C Program for Arrays and Pointers
This section provides a sample C program using arrays and pointers. strdel(str,n,l) is function that deletes l characters at position n from str.
One main feature of the C language is that arrays and pointers are closely related to each other. Here is sample code that shows you how arrays of characters, char[], can be passed as pointers of characters, char*, in function calls.
/* strdel.c * strdel() function and test program */ #include <stdio.h> extern int strdel(char*, int, int); main() { char line[] = "abcde6789012345ABCDE"; char ptr[80]; strcpy(ptr,line); printf("string : \"%s\"\n",ptr); strcpy(ptr,line); strdel(ptr,1,5); printf("strdel( 1, 5): \"%s\"\n",ptr); strcpy(ptr,line); strdel(ptr,5,5); printf("strdel( 5, 5): \"%s\"\n",ptr); strcpy(ptr,line); strdel(ptr,5,25); printf("strdel( 5,25): \"%s\"\n",ptr); strcpy(ptr,line); strdel(ptr,5,0); printf("strdel( 5, 0): \"%s\"\n",ptr); strcpy(ptr,line); strdel(ptr,20,1); printf("strdel(20, 1): \"%s\"\n",ptr); strcpy(ptr,line); strdel(ptr,25,1); printf("strdel(25, 1): \"%s\"\n",ptr); } /* strdel(str,n,l) function * Deleting l characters at position n from str * ptr: string pointer * n: >=1, 1 means character one * l: >=0, 0 means to the end */ int strdel(str,n,l) char *str; int n, l; { char *p; char *b; int m = 0; p = str; while (*p++) m++; /* get the length, not including \0 */ if (m<n) return; p = str; while ((n--)>1) p++; /* get to the right position */ *p = '\0'; /* good for l=0 */ if (l>0 && n+l<=m) { b = p; while ((l--)>0) p++; /* skip l characters */ while (*b++ = *p++); /* copy the rest, including \0 */ } }
The output of the sample code is:
string : "abcde6789012345ABCDE" strdel( 1, 5): "6789012345ABCDE" strdel( 5, 5): "abcd012345ABCDE" strdel( 5,25): "abcd" strdel( 5, 0): "abcd" strdel(20, 1): "abcde6789012345ABCD" strdel(25, 1): "abcde6789012345ABCDE"
Table of Contents
2002 - .NET Framework Developed by Microsoft
1995 - PHP: Hypertext Preprocessor Created by Rasmus Lerdorf
1995 - Java Language Developed by Sun Microsystems
1991 - WWW (World Wide Web) Developed by Tim Berners-Lee
1991 - Gopher Protocol Created by a University of Minnesota Team
1984 - X Window System Developed a MIT Team
1984 - Macintosh Developed by Apple Inc.
1983 - "Sendmail" Mail Transfer Agent Developed by Eric Allman
1979 - The Tcsh (TENEX C Shell) Developed by Ken Greer
1978 - Bash (Bourne-Again Shell) Developed by Brian Fox
1978 - The C Shell Developed by Bill Joy
1977 - The Bourne Shell Developed by Stephen Bourne
1977 - Apple II Designed by Steve Jobs and Steve Wozniak
1976 - vi Text Editor Developed by Bill Joy
1974 - Internet by Vinton Cerf
►1972 - C Language Developed by Dennis Ritchie
Compilation and Execution Process of C Programs
►Sample C Program for Arrays and Pointers
Sample C Program for Dynamic Memory Allocation - malloc()
1971 - FTP Protocol Created by Abhay Bhushan
1970 - UNIX Operating System Developed by AT&T Bell Labs