zoukankan      html  css  js  c++  java
  • C语言字符串以及相关指针的使用

    这是我写的strcpy函数的例程:

    char* strcpy1(char* strDest,char* strSrc)
    {
    	int i = 0;
    	if(checkNull(strSrc) == 0)
    		return NULL;
    	while(strSrc[i] != '\0')
    	{
    		strDest[i] = strSrc[i];
    		i++;
    	}
    	strDest[i] = '\0';
    	return strDest;
    
    }
    
    int checkNull(char* str)
    {
    	int len = strlen(str);
    	if(len == 0)
    		return 0;
    	else
    		return 1;
    }
    

      另外还可以这么写:

    char* strcpy1(char* strDest,char* strSrc)
    {
    	int i = 0;
    	if(checkNull(strSrc) == 0)
    		return NULL;
    	while(*strSrc != '\0')
    	{
    		*strDest = *strSrc;
    		strDest++;
                    strSrc++;
    	}
    	*strDest = '\0';
    	return strDest;
    
    }
    
    int checkNull(char* str)
    {
    	int len = strlen(str);
    	if(len == 0)
    		return 0;
    	else
    		return 1;
    }
    

      这个小程序并不难,但是我写的时候暴露了很多问题,仔细研究这些问题,可以提高自己对C指针的理解深度。

     1、首先是字符串的定义,字符串在C语言的机制中和字符数组是一致的,只是字符串末尾以'\0'结束

          因此定义一个字符串可以有两种形式。

          char *s = "Hello World";

          char s[20];

          但是注意 如果只是定义了char *s;这样是不对的,因为此时s指针并没有显式的被分配值,这样程序运行的时候很有可能因为指针地址不正确造成程序崩溃。

          而应该在定义了指针s之后,分配空间src = (char*)malloc(sizeof(char)*100);

    2、另外就是字符串的遍历方法,上面的两个例程明确的说明了遍历的方式。

  • 相关阅读:
    Hadoop HDFS的Shell操作实例
    我来阿里的2年
    设计模式之迪米特原则(LoD)
    设计模式之接口隔离原则
    设计模式之依赖倒置原则
    设计模式之里氏替换原则(LSP)
    设计模式之单一职责原则(SRP)
    Android开发系列之性能优化
    Android开发系列之屏幕密度和单位转换
    Android开发系列之ListView
  • 原文地址:https://www.cnblogs.com/ITEagle/p/2149043.html
Copyright © 2011-2022 走看看