c语言实现两个字符串的比较不用strcmp例子
直接使用字符数组+循环实现一遍strcmp的比较过程(按字典序)即可,也可以改成指针形式的,见代码:<br>intmyStrcmp(charstring1[],charstring2[]){inti=0;while(string1[i]==string2[i]&amp;&amp;string1[i]!='\0'){i++;}returnstring1[i]-string2[i];}<br>当比较到某一个位置的字符不相等时,对两个字符进行减法运算即可,如果全部相等,那么最后做差返回的肯定是0。
"<h2>一、strcpy()函数概述</h2><br><h2>在C语言函数中:</h2><br>原型声明:char *strcpy(char* dest, const char *src);<br>头文件:#include和#include<br>定义函数:char *strcpy(char *dest, const char *src);<br>函数说明:strcpy()会将参数src 字符串拷贝至参数dest 所指的地址。<br>返回值:返回参数dest 的字符串起始地址。<br>附加说明:如果参数 dest 所指的内存空间不够大,可能会造成缓冲溢出(buffer Overflow)的错误情况,在编写程序时请特别留意,或者用strncpy()来取代。<br><h2>二、strcpy()函数原型</h2><br>//C语言标准库函数strcpy的一种典型的工业级的最简实现。<br>//返回值:目标串的地址。<br>//对于出现异常的情况ANSI-C99标准并未定义,故由实现者决定返回值,通常为NULL。<br>//参数:des为目标字符串,source为原字符串。<br>char* strcpy(char* des,const char* source)<br>{<br>char* r=des;<br>assert((des != NULL) && (source != NULL));<br>while((*r++ = *source++)!='\0');<br>return des;<br>}<br>//while((*des++=*source++));的解释:赋值表达式返回左操作数,所以在赋值'\0'后,循环停止。<br>----------------------------------------------------------------------------------------------<br>三、strcpy()函数实例<br><h2>实例1:将一个字符串拷贝到一个足够长的字符数组中。本例中字符数组为a,长度为20。</h2><br><h2>//缺点:若数组长度不足以容纳整个字符串,则程序运行崩溃。</h2><br><h2>/* 备注:编译工具Visual studio 2013 */</h2><br>#include ""stdafx.h""<br>#include<br>#include<br>using namespace std;<br>char * strcpy(char * strDest, const char * strSrc)<br>{<br>char * strDestCopy = strDest;<br>if ((NULL == strDest) || (NULL == strSrc))<br>throw ""Invalid argument"";<br>while ((*strDest++ = *strSrc++) != '\0');<br>return strDestCopy;<br>}<br>int main(int argc, char * argv[])<br>{<br>char a[20], c[] = ""I am student."";<br>try<br>{<br>strcpy(a, c);<br>}<br>catch (char* strInfo)<br>{<br>cout"