C语言的几个小常识

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'};

 

01 #include<stdio.h>
02 #include<string.h>
03 void main()
04 {
05   char string[20]; char str[3][20]; int i;
06   for(i=0;i<3;i++)
07      gets(str[i]);
08   if(strcmp(str[0],str[1])>0)
09      strcpy(string,str[0]);
10   else
11      strcpy(string,str[1]);
12   if(strcmp(str[2],string)>0)
13      strcpy(string,str[2]);
14   printf("\nThe largest string is %s\n",string);
15 }

 

 

01 #include <syslib.h>
02 #include <string.h>
03 int main()
04 {  
05     char *s1="Hello, Programmers!";
06     char *s2="Hello, programmers!";
07     int r;  
08    clrscr();  
09    r=strcmp(s1,s2);
10    if(!r)
11      printf("s1 and s2 are identical");
12    else if(r<0)
13      printf("s1 less than s2");
14    else
15      printf("s1 greater than s2");
16    getchar();
17    return 0;
18 }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章