`
ZeaLoVe
  • 浏览: 91588 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

实现C里面常用的字符串操作

 
阅读更多

    大公司的面试题除了一些算法和智力题以外,还会考察一些基本功,就是对代码的实现能力。这种问题除了算法题可以考察外也可以通过让你现场编写简单的库函数来考察。

    不要以为很简单。。细节问题很多的,要想给人好印象就必须处理好各种可能的情况。还记得我大四校招时候面腾讯2面就是被这样一个题目搞傻了。所以从别人拿拷点好东西来看看,这些都是源码

 

 

char * __cdecl strcat (char * dst,const char * src)
{
	char * cp = dst;
	
	while( *cp )
		cp++;                   /* find end of dst */
	
	while( *cp++ = *src++ ) ;       /* Copy src to end of dst */
	
	return( dst );                  /* return dst */
	
}

int __cdecl strcmp (const char * src,const char * dst)
{
	int ret = 0 ;
	
	while( ! (ret = *(unsigned char *)src - *(unsigned char *)dst) && *dst)
		++src, ++dst;
	
	if ( ret < 0 )
		ret = -1 ;
	else if ( ret > 0 )
		ret = 1 ;
	
	return( ret );
}

size_t __cdecl strlen (const char * str)
{
	const char *eos = str;
	
	while( *eos++ ) ;
	
	return( (int)(eos - str - 1) );
}

char * __cdecl strncat (char * front,const char * back,size_t count)
{
	char *start = front;
	
	while (*front++)
		;
	front--;
	
	while (count--)
		if (!(*front++ = *back++))
			return(start);
		
        *front = '/0';
        return(start);
}

int __cdecl strncmp (const char * first,const char * last,size_t count)
{
	if (!count)
		return(0);
	
	while (--count && *first && *first == *last)
	{
		first++;
		last++;
	}
	
	return( *(unsigned char *)first - *(unsigned char *)last );
}

/* Copy SRC to DEST.  */
char *
strcpy (dest, src)
char *dest;
const char *src;
{
	reg_char c;
	char *__unbounded s = (char *__unbounded) CHECK_BOUNDS_LOW (src);
	const ptrdiff_t off = CHECK_BOUNDS_LOW (dest) - s - 1;
	size_t n;
	
	do
    {
		c = *s++;
		s[off] = c;
    }
	while (c != '/0');
	
	n = s - src;
	(void) CHECK_BOUNDS_HIGH (src + n);
	(void) CHECK_BOUNDS_HIGH (dest + n);
	
	return dest;
}

char * __cdecl strncpy (char * dest,const char * source,size_t count)
{
	char *start = dest;
	
	while (count && (*dest++ = *source++))    /* copy string */
		count--;
	
	if (count)                              /* pad out with zeroes */
		while (--count)
			*dest++ = '/0';
		
        return(start);
}

 来源:http://blog.csdn.net/v_JULY_v/article/details/6417600

分享到:
评论
1 楼 zhc0822 2011-11-25  
好东西,捧走收藏。

相关推荐

    java字符串处理取出括号内的字符串

    本篇文章将深入探讨如何从字符串中提取括号内的内容,主要关注于基础的字符串操作、正则表达式以及如何利用这些工具来实现目标。 首先,我们要明白Java中的字符串是`String`类的对象,它提供了丰富的API用于字符串...

    在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词。(C语言)

    在C语言中,查找一个已知字符串中的最长单词是一项常见的编程任务,这涉及到字符串处理、指针操作以及循环控制等基础知识。在这个问题中,我们假设输入的字符串仅包含字母和空格,空格用于分隔不同的单词。接下来,...

    格式化写入字符串_labview_

    在LabVIEW中,字符串操作是相当重要的,因为它们在数据表示、日志记录、用户界面交互等方面发挥着关键作用。格式化写入字符串通常涉及到将数据以特定的格式输出到文本文件、控制台或者用户界面上。下面,我们将详细...

    判断字符串中的单词个数

    根据给定的信息,我们可以从多个角度来探讨与“判断字符串中的单词个数”相关的知识点,包括C语言的基础语法、字符串处理、字符识别等。 ### C语言基础语法 #### 1. 包含头文件 在C语言编程中,通常会通过`#...

    C#判断一个字符是否在字符串里/数组里

    在C#编程语言中,判断一个字符是否存在于字符串或数组中是常见的操作,这在处理文本数据时尤其重要。下面我们将详细探讨如何实现这个功能,以及相关的重要知识点。 首先,我们要知道C#提供了多种方法来检查字符是否...

    Linux/windows 字符串处理CString类

    在性能方面,虽然两个类都提供了高性能的字符串操作,但具体性能差异可能取决于具体实现和使用场景。CString的线程安全性可能会引入额外的开销,而std::string的动态内存管理可能导致更多的内存分配和释放。在实际...

    Python字符串常用方法汇总.docx

    Python 字符串常用方法汇总 Python 字符串是一种基本的数据类型,可以使用引号(' 或 ")来创建字符串。创建字符串很简单,只要为变量分配一个值即可。例如:var1 = 'Hello World!'var2 = "Python Runoob" 转义...

    java代码笔记2010-06-12:java控制台输入各类型类实现;以及判断输入字符串里面是否有数字的两种方法:方法1:转换成字符数组;方法2:正则表达式。

    总结来说,Java提供了丰富的API来处理控制台输入和字符串操作。了解并熟练运用这些方法,能帮助开发者更好地构建用户交互的命令行应用。同时,对于字符串中数字的检测,可以根据实际情况选择合适的方法,考虑性能和...

    map/list集合转化成xml字符串 xml字符串转化成map/list集合

    本篇文章将详细介绍如何将Map和List集合转换为XML字符串,以及如何将XML字符串反向转换回Map和List集合。 首先,让我们探讨`Map`集合转成XML字符串的过程。一个`Map`对象存储键值对,可以使用各种库如`JAXB (Java ...

    匹配目录下所有字符串

    综上所述,实现“匹配目录下所有字符串”的功能,需要综合运用文件系统操作、正则表达式、搜索算法以及并发处理等技术,同时还需要考虑到性能优化和错误处理。通过编写合适的代码或利用现有的工具,我们可以高效地...

    C#实现字符串RSA加密与解密 算法工程下载

    本项目“C#实现字符串RSA加密与解密 算法工程下载”提供了一个C#语言编写的示例,帮助开发者理解并应用RSA加密算法。 RSA的核心原理基于大数因子分解的困难性。它使用一对公钥和私钥,公钥可以公开,用于加密数据;...

    51单片机驱动LCD1602的代码,包括初始化函数、显示字符、显示字符串、清除屏幕、显示数字等操作.zip

    这个压缩包包含的资源是51单片机驱动LCD1602的源代码,能够帮助开发者实现对LCD1602的各种操作,如初始化、显示字符、字符串、清除屏幕以及显示数字。下面将详细介绍这些知识点。 首先,`LCD1602.h`是头文件,它...

    字符串转换(教程)可以做为参考

    在编程中,字符串转换是常见的操作,特别是在C++中,由于C++标准库中的字符串类型(如`std::string`)与MFC(Microsoft Foundation ...同时,在进行字符串操作时,要注意编码问题,尤其是涉及到多语言和Unicode支持时。

    CharacterCounter:给定一个字符串和一个字符,计算该字符在字符串中出现的次数

    总的来说,实现“CharacterCounter”涉及了Java中的字符串操作、循环逻辑、条件判断、方法调用、流API等多个知识点。通过这个任务,开发者可以巩固基础,同时了解如何利用Java的高级特性来提高代码效率和可读性。

    初级C语言里面的指针

    本文将深入探讨初级C语言中的指针,包括地址和指针的概念、变量的指针与指向变量的指针变量、数组与指针、字符串与指针、指向函数的指针、返回指针值的函数以及指针数组和指向指针的指针。 10.1 地址和指针的概念 ...

    超级批量文本替换工具

    本软件特别适合需要批量替换大量文本里特定文字的网友,还可以实现特征字符串之间的模糊替换,是对付大量网页恶意代码的利器 可以处理 *.txt;*.htm;*.c;*.cpp;*.h;*.hpp;*.pas;*.dpr;*.bpr;*.asp; *.php;*.cgi;*.ini...

    汉语数字串与阿拉伯数字串间转换小工具(C源码)

    本项目是关于"汉语数字串与阿拉伯数字串间转换小工具",它使用C语言编写,专注于字符串操作,能够实现两种数字表示形式的互换,并且支持汉语数字串的大小写转换。这个工具对于处理中文数字和阿拉伯数字之间的转换...

    C语言课程设计景区管理系统

    - 变量和数据类型:理解如何定义和使用不同类型的数据,如整型、字符串等。 - 结构体:用于封装游客、景点等复杂数据。 - 文件操作:学会使用fopen/fclose/fread/fwrite等函数进行文件的读写操作。 - 循环和条件语句...

    宇视科技软件笔试面试.pdf

    在C语言中,递归函数可以用于解决一些复杂的问题,而字符串操作需要注意指针的使用和数组的索引。 编程题 1.输入两个任意长度的字符串,将两个字符串的和保存在字符串数组里:这道题考察了字符串操作和数组的使用...

    五子棋在linux命令行模式下C语言实现

    利用C语言的字符串操作和数组,可以创建一个二维数组来模拟棋盘。 4. **编译与运行**:在Linux环境中,`make`是一个常用的构建工具,它读取名为`Makefile`的文件来编译项目。编译完成后,使用`sudo`提升权限执行...

Global site tag (gtag.js) - Google Analytics