Strings
Initial Examples


C Program Illustrating Strings:

String example: string_test.c Run of string_test.c
% cat -n string_test.c
 1  #include <stdio.h>
 2  #include <string.h>
 3  #include <stdlib.h>
 4  void print_string1(char []);
 5  void print_string2(char *);
 6  int main() {
 7     /* equiv ways to declare string "Neal" */
 8     char s[5];
 9     char t[] = "Neal";
10     char u[] = {'N', 'e', 'a', 'l', '\0'};
11     /* here is the address of a string: */
12     char *p; char *q; char *r;
13  
14     s[0] = 'N'; s[1] = 'e'; s[2] = 'a';
15         s[3] = 'l'; s[4] = '\0';
16     printf("Three strings:%s,%s,%s\n", 
17         s, t, u);
18     p = s; q = &s[0];
19     printf("Pointer to char:%s,%s\n", p, q);
20     /* passing param, all print: "Neal" */
21     printf("Six Neals:");
22     print_string1(s);
23     print_string1(p);
24     print_string1(q);
25     print_string2(s);
26     print_string2(p);
27     print_string2(q);
28     printf("\n");
29     /* printing characters */
30     printf("Four characters (1):%c%c%c%c\n",
31        s[0], s[1], s[2], s[3]);
32     printf("Four characters (2):%c%c%c%c\n",
33        p[0], p[1], p[2], p[3]);
34     printf("Four characters (3):%c%c%c%c\n",
35        *s, *(s+1), *(s+2), *(s+3));
36     printf("Four characters (4):%c%c%c%c\n",
37        *p, *(p+1), *(p+2), *(p+3));
38     printf("Four characters (5):");
39     while (*p)  /* or  while (*p != '\0')  */
40        printf("%c", *(p++));  /* or *p++  */
41     printf("\n");
42     r = (char *) malloc(strlen(s) + 1);
43     strcpy(r, s);
44     printf("New string:%s\n", r);
45     return 0;
46  }
47  void print_string1(char a[]) {
48     printf("%s", a);
49  }
50  void print_string2(char *a) {
51     printf("%s", a);
52  }
%  cc -o string_test string_test.c
% string_test
Three strings:Neal,Neal,Neal
Pointer to char:Neal,Neal
Six Neals:NealNealNealNealNealNeal
Four characters (1):Neal
Four characters (2):Neal
Four characters (3):Neal
Four characters (4):Neal
Four characters (5):Neal
New string:Neal


Notes and Comments:


Copyright © 2011, Neal R. Wagner. Permission is granted to access, download, share, and distribute, as long as this notice remains.