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 |