zoukankan      html  css  js  c++  java
  • m_strcpy

    自己实现strcpy函数

    #include <stdio.h>
    #include <assert.h>	//如果它的条件返回错误,则终止程序执行
    
    char *m_strcpy(char* str1, char* str2)
    {
    	assert(str1 != NULL);
    	assert(str2 != NULL);
    	
    	if (str1 == NULL||str2 == NULL)
    	{
    		return NULL;
    	}
    	
    	char *ret = str2;		
    	while((*str2++ = *str1++) != '');
    	return ret;
    }
    
    int main(void)
    {
    	char str1[] = "hello world123123!";//fgets(word, num, stdin);
    	char str2[sizeof(str1)] = {' '};
    
    	m_strcpy(str1, str2);
    	printf("str2: %s %d
    ", str2, sizeof(str2));
    	
    	return 0; 
    } 
    

    代码2:

    char *m_strcpy(char dest[],char src[])
    {
    	int i = 0;
    	while(src[i] != '')
    	{
    		dest[i] = src[i];
    		i++;
    	}
    	dest[i] = '';
    	
    	return dest;
    }
    
    
    

    关于这个代码的问题:

    #include <stdio.h>
    #include <assert.h>	//如果它的条件返回错误,则终止程序执行
    
    char *m_strcpy(char* str1, char* str2)
    {
    	assert(str1 != NULL);
    	assert(str2 != NULL);
    	
    	if (str1 == NULL||str2 == NULL)
    	{
    		return NULL;
    	}
    	
    	char *ret = str2;		
    	while((*str2++ = *str1++) != '');
    	return ret;
    }
    
    int main(void)
    {
    	char str1[] = "hello world123123!";//fgets(word, num, stdin);
    	char str2[] = {'  '};
    
    	m_strcpy(str1, str2);
    	printf("str2: %s %d
    ", str2, sizeof(str2));
    	
    	return 0; 
    } 
    

    为啥str2的大小为1,还是输出了复制后的结果。

    
    
  • 相关阅读:
    010-1 Socket地址族AddressFamily
    011 Socket定义客户端
    003 win7如何配置adb环境变量
    002 调试工具的具体功能
    001 Nibiru SDK 调试工具介绍
    001 UI介绍
    010 socket定义服务器
    001 Lua相关链接
    000 Lua目录
    深拷贝的、浅拷贝讲解以及示例
  • 原文地址:https://www.cnblogs.com/fanhua666/p/11447700.html
Copyright © 2011-2022 走看看