myatoi, mystcmp, mystrcasecmp,mystrncmp

/****************************************
int atoi(char *s):不能转换则返回0
将字符串s转为int整数
atoi(“123”) :结论为123
atoi(“12ab”):结论为12
atoi(“ab”):结论为0
*****************************************/


//***********myatoi**********************

#include <stdio.h>
#include <ctype.h>

int myatoi(char *str)
{
	int sum = 0, i;
	for(i = 0; str[i]; i++ ){
		if(isdigit(str[i])){
			sum = sum * 10 + (str[i] - '0');
		}else {
			break;
		}
	
	}

	return sum;
}


int main(void)
{

	char src[1024];

	gets(src);

	printf("%d\n", myatoi(src));

	return 0;
}


/**********************************************
akaedu@akaedu-G41MT-D3:~/lin/722_str$ ./myatoi 
5689
5689
akaedu@akaedu-G41MT-D3:~/lin/722_str$ ./myatoi 
59da
59
akaedu@akaedu-G41MT-D3:~/lin/722_str$ ./myatoi 
ad
0
akaedu@akaedu-G41MT-D3:~/lin/722_str$ ./myatoi 
ad56
0
***********************************************/<pre name="code" class="cpp">
















//************************mystrcmp***************
#include <stdio.h>

int mystrcmp(char *s1, char *s2)
{
	int i;

	for(i = 0; (s1[i] == s2[i]); i++){
		if(!s1[i]){  // !s1[i] // ( s1[i] == '\0')
			return 0;
		}	
	}

	return s1[i] > s2[i] ? 1: -1;
}


int main(void)
{
	char src1[1024];
	char src2[1024];
	
	gets(src1);
	gets(src2);

	printf("%d\n", mystrcmp(src1, src2) );

	return 0;

}



/*
akaedu@akaedu-G41MT-D3:~/lin/722_str$ ./mystrcmp 
abc
abc
0
akaedu@akaedu-G41MT-D3:~/lin/722_str$ ./mystrcmp 
ab
abc
-1
akaedu@akaedu-G41MT-D3:~/lin/722_str$ ./mystrcmp 
abc
ab
1
*/




//************************mystrncmp********************
//*****************************************************




#include <stdio.h>

int mystrncmp(char *s1, char *s2, int n)
{
	int i;
	for(i = 0; (s1[i] == s2[i]); i++){
				n--;
			if((n == 0) || !s1[i]){  // !s1[i] // ( s1[i] == '\0')
				return 0;
			}	
		//	printf("i:%d n:%d\n", i, n);
	}
	

	return s1[i] > s2[i] ? 1: -1;
}


int main(void)
{
	char src1[1024];
	char src2[1024];
	
	gets(src1);
	gets(src2);

	printf("%d\n", mystrncmp(src1, src2, 3) );

	return 0;

}



/*
akaedu@akaedu-G41MT-D3:~/lin/722_str$ ./mystrncmp
hello
helwz
i:0 n:2
i:1 n:1
0
akaedu@akaedu-G41MT-D3:~/lin/722_str$ ./mystrncmp
hewl
hell
i:0 n:2
i:1 n:1
1
akaedu@akaedu-G41MT-D3:~/lin/722_str$ ./mystrncmp
heel
hewl
i:0 n:2
i:1 n:1
-1
*/







//*********************mystrcasecmp********************
//*****************************************************



#include <stdio.h>
#include <ctype.h>


int mystrcasecmp(char *src1, char *src2)
{
	int i;
	for(i = 0; ( toupper(src1[i]) == toupper(src2[i]) ); i++){
		if(!src1[i]){
			return 0;
		}
	}

	return src1[i] > src2[2] ? 1: -1;
}


int main(void)
{
	char str1[1024];
	char str2[1024];

	gets(str1);
	gets(str2);

	printf("%d\n", mystrcasecmp(str1, str2));
	return 0;
}




/*
abc
AB 
1
akaedu@akaedu-G41MT-D3:~/lin/722_str$ ./mystrcasecmp 
sd
SD
0
akaedu@akaedu-G41MT-D3:~/lin/722_str$ ./mystrcasecmp 
sss
AAAAA
1
akaedu@akaedu-G41MT-D3:~/lin/722_str$ ./mystrcasecmp 
fg
FGG
-1
*/



 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值