char s[20] 与 char *s[20]的区别
/* char s[20]表示在栈上分配了20个字符空间,该空间的首址为s
char *s[20]表示一个指针数组,该数组有20个成员.每一个成员都是一个指针 */
*p++ 与 (*p)++的区别
/* *p++表示 取*p的值后p的地址加1
(*p)++表示取*p的值后*p指向的值加1
*/
gets(str[i]);
clrscr(); 功 能: 清除文本模式窗口清屏的意思
puts(a); 功 能: 送一字符串到流中 用 法: int puts(char *string);
int main(int argc, char *argv[])
strcpy函数 strcat函数 strcmp函数 strlen()函数
strcpy函数用于实现两个字符串的拷贝。一般形式是: strcpy(字符中1,字符串2)
其中,字符串1必须是字符串变量,而不能是字符串常量。strcpy函数把字符串2的内容完全复制到字符串1中,而不管字符串1中原先存放的是什么。复制后,字符串2保持不变。
例: 注意,由于字符串是数组类型,所以两个字符串复制不通过赋值运算进行。
t=s; /*错误的字符串复制*/
strcpy(t,s); /*正确的字符串复制*/
char s[30];
strcpy(s, "Good News!"); /*给数组赋字符串*/
在C语言中 strchr 和 strstr函数都被包含在<string.h>头文件中,也就是要调用它们时要在程序前面包含<string.h>头文件,也就是写这个语句:#include<string.h>
strchr函数原型:char * strchr(char * str, int ch); 功能就是找出在字符串str中第一次出项字符ch的位置,找到就返回该字符位置的指针(也就是返回该字符在字符串中的地址的位置),找不到就返回空指针(就是 null)。
strstr 函数原型: char * strstr(char * str1,char * str2);功能就是找出在字符串str1中第一次出项字符串str2的位置(也就是说字符串sr1中要包含有字符串str2),找到就返回该字符串位置的指针(也就是返回字符串str2在字符串str1中的地址的位置),找不到就返回空指针(就是 null)。
它们一个是求一个字符在字符串中得位置,另一个是求一个字符串在另一个字符串中的位置。
strchr(s,'V');
字符数组与sting的区别:字符数组最后一个要存'\0'
我们定义字符数组时,通常采用第一种形式,即不显式指定字符串的长度,而由编译器自行确定字符数组的长度。
char s1[] = "example";
字符数组也可以在定义时初始化:
char str[16] = {'T', 'h', 'i', 's', ' ', 'i', 's', ' ', ' a', ' ', 's', 't', 'r', 'i', 'n', 'g'};
#include<stdio.h> #include<string.h> void main() { char string[20]; char str[3][20]; int i; for(i=0;i<3;i++) gets(str[i]); if(strcmp(str[0],str[1])>0) strcpy(string,str[0]); else strcpy(string,str[1]); if(strcmp(str[2],string)>0) strcpy(string,str[2]); printf("\nThe largest string is %s\n",string); }
#include <syslib.h> #include <string.h> int main() { char *s1="Hello, Programmers!"; char *s2="Hello, programmers!"; int r; clrscr(); r=strcmp(s1,s2); if(!r) printf("s1 and s2 are identical"); else if(r<0) printf("s1 less than s2"); else printf("s1 greater than s2"); getchar(); return 0; }