#include <stdio.h>
#include <string.h>
char* Input();
int strcmp( char* s1 , char* s2);
void AbondonFirstChar(char* s);
int main(){
char* s1 , * s2 ;
printf("This program compares two strings.\n");
s1 = Input();
s2 = Input();
printf("%d",strcmp( s1 , s2 ));
return 0;
}
char* Input(){
char s[21] , *p = s ;
int i ;
for ( i = 0 ; i < 20 ; i ++ ){
*(p+i) = getchar() ;
if ( s[i] == '\n' || s[i] == '\0' ) break ;
}
s[i] = '\0'; //字符串赋值,字符串长度不超过20
p = s ;
return p ;
}
int strcmp( char* s1 , char* s2){
/*判断是否能比较出结果*/
if ( *s1 == '\0' && *s2 == '\0' )
return 0 ;
if ( *s1 == '\0' || *s1 < *s2 )
return -1 ;
if ( *s2 == '\0' || *s1 > *s2 )
return 1 ;
char *p1 = s1 , *p2 = s2 ;
AbondonFirstChar( p1 ) ;
AbondonFirstChar( p2 ) ; //若两个字符串的首字母相同则去掉首字母
strcmp ( s1 , s2 ); //迭代比较
return 2 ;
}
void AbondonFirstChar(char* s){
int i , n ;
n = strlen( s );
for( i = 0; i < (n-1) ; i ++ ){
*(s+i) = *(s+i+1);
}
*(s+n-1) = '\0'; //使原本的最后一位变为结束
return ;
}
嗯,确实,但这样改后s1,s2指向的都是s[21]了,还是不对啊,我把Input中的指针p去掉了,把s[21]改成了*s,但是不管用scanf还是getchar都不能输入,什么问题?
Dreamweaver一直有些问题困扰着我,请达人帮下忙
GB2312,当我们定义了主页内码为GB2312后,虽然解决了中文字符自动换行的问题,但是页面里所有的英文都只能用宋体字库的英文显示,即使我们定义了页面里的英文用其它英文字体显示,但最后的结果是没有任何作用。该项属性功能可以跨越不同的浏览器(首要条件当然是支持CSS),不同的系统,即使在用GB2312内码的页面中,你都可以...
低代码究竟是什么?
答案已经显而易见:既不是指抽象程度很低(相反,低代码开发方式的抽象程度要比传统编程语言高一个level),也不是指代码很low(也相反,低代码所生成的代码一般都经过精心维护和反复测试,整体质量强于大部分手写代码),而是单纯的“少写代码” —— 只在少数需要的情况下才手写代码,其他大部分时候都能用可视化等非代码...
如何学习C语言
第一:C语言语法结构很简洁精妙,写出的程序也很高效,很便于描述算法,大多数的程序员愿意使用C语言去描述算法本身,所以,如果你想在程序设计方面有所建树,就必须去学它。第二:C语言能够让你深入系统底层,你知道的操作系统,哪一个不是C语言写的?所有的windows,Unix,Linux,Mac,os\/2,没有一个里外的,如果你不懂C语...
电脑操作达人帮我下,请仔细回答我的问题;答的好追加100分~
⑥在右侧栏目中可以发现多了一个“虚拟内存测试”项目,如果该项目为红色则说明还没有启动,点击该项,选择右键菜单中的“启动”选项即可 接下来运行自己常用的一些应用程序,运行一段时间后,进入日志文件所在的系统分区下默认目录“PerfLogs”,找到“虚拟内存测试_000001.csv”并用记事本程序打开它,在该...
如何学好C语言?
所有初学者面临的第一个问题便是:如何选择教材。好的开始是成功的一半,选择一本优秀的教材是事半功倍的关键因素。不幸的是,学校通常会帮你指定一本很差劲的C语言课本;而幸运的是,你还可以再次选择。没有学习交流地方可以来 大名鼎鼎的谭浩强教授出了一本《C语言程序设计》,据说发行量有超过400万,据我所知,很多...
c语言一串字符串中提取数字并相加的问题
既然是字符串,那要么用数组保存,要么用指针来操作,所以这个避免不了的,不用函数的话那你就直接把函数中的功能写到main函数中就好了,只是这样同样的功能代码你要写两遍,真不知道你为什么会要这样的要求 lwlwwzc | 发布于2010-05-19 举报| 评论 0 0 为您推荐: C语言- C语言字符串长度 c语言字符串输入...
学习C语言需要哪些软件
学c语言可以用的软件推荐如下:1、TurboC是由美国Borland公司开发的一套C语言程序开发工具,Borland公司是一家专门从事软件开发、研制的大公司。该公司相继推出了一套Turbo系列软件,如TurboBASIC、TurboPascal、TurboProlog,这些软件很受用户欢迎。TurboC集成了程序编辑、调试、链接等多种功能。2、WIN-TC是...
如何学习C语言?
学习方法是:1、课前预习,课后复习,认真做课堂、课后的作业,理解理论知识。2、记住语法规则。3、加强逻辑思维。4、多动手,通过练习上机了解它的运行过程。5、实践—>理论—>再实践,刚开始学习C语言时,按示例练习,并推动理论的学习,然后再自己多思考,多上机实践。
c语言字符数组如何释放消毁?
你提问中定义方式是在函数完成前释放不了的,你定义的字符数组,放在stack空间,不能用free()试图释放堆中的内容,因为那里是一段程序运行的保证。只有使用malloc()在栈空间开辟的动态内存才能被释放!如果你后面的代码想继续用这个数组名的话,这个数组还是可以重新赋值。你可以把你用到的数据独到这个变量中就行了!你定...
C语言取某个字符后的字符串存到另一个字符串
}运行如下:[ 58.154.16.0 - 58.154.31.255] jianwenh | 发布于2011-03-03 举报| 评论 1 1 其他1条回答 为您推荐: 字符串长度 字符是什么 转义字符 字符串常量 c字符串删除指定字符 输入字符串 定义字符串 二维字符数组怎么输出 c语言字符串 字符串是什么意思 ...