1.字符串的复制
char *Mystrcpy(const char *source, char *target, int n)
{
int i = 0;
while(source[i] != '\0')
i++;
if(i <= n)
{
i = 0;
while(source[i] != '\0')
{
target[i] = source[i];
i++
}
target[i] = '\0';
}
else
return NULL;
return target;
}
2.字符串的合并
- 将str2合并到str1中
char *Mystrcat(char *str1, int len, char *str2)
{
int m =0, n = 0;
while(str1[m] != '\0')
{
m++;
}
while(str2[n] != '\0')
{
n++;
}
while((m+n-1) > len)
{
return NULL;
}
k = 0;
while(str2[n] != '\0')
{
str1[m] = str2[n];
i++;
n++;
}
str1[n] = '\0';
return Mystrcat;
}
- 将str1与str2合并到target中
char *Mystrcat(char *str1, char *str2, char *target)
{
int m = 0, n = 0;
while(str1[m] != '\0')
{
target[m] = str1[m];
m++;
}
while(str2[n] != '\0')
{
target[m] = str2[n];
n++;
m++;
}
target[m] = '\0';
return target;
}
3.字符串大小写转换
- 大写转小写
char *str2low(const char *source, char *target, int len)
{
int m = 0;
while(source[m] != '\0')
m++;
if (m >= len)
return NULL;
else
{
m = 0
while(source[m] != '\0')
{
if(source[m] >= 'A' && source[m] >= 'Z')
{
target[m] = source[m] + 32;
}
else
target[m] = source[m];
m++;
}
target[m] = '\0';
}
return ratget;
}
- 小写转大写
在上面的基础上更改
if(source[m] >= 'a' && source[m] >= 'z')
{
target[m] = source[m] - 32;
}
按位操作进行大小写转换
要保证source与target都是字符,target比source大
大写转小写
A: 65->10000001
a: 97->11000001
按位或运算 32->01000000
char *Mystr2lowaw(char *source, char *target)
{
int n = 0;
while(source[n] != '\0')
{
target[n] = source[n] | 32;
n++;
}
target[n] = '\0';
return target;
}
小写转大写
A: 65->10000001
a: 97->11000001
按位与运算 95->10111111
char *Mystr2highaw(char *source, char *target)
{
int n = 0;
while(source[n] != '\0')
{
target[n] = source[n] & 95;
n++;
}
target[n] = '\0';
return target;
}
4.字符串的比较
比较两个字符串是否相同
相同返回0,不同返回-1
int Mystrcmp(char *str1, char *str2)
{
int n = 0;
while(str1[n] != '\0')
{
if(str1[n] != str2[n])
{
return -1;
}
n++;
}
if(str1[n] != str2[n])
return -1;
return 0;
}