1.字元串的複制
char *Mystrcpy(const char *source, char *target, int n)
{
int i = ;
while(source[i] != '\0')
i++;
if(i <= n)
{
i = ;
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 =, n = ;
while(str1[m] != '\0')
{
m++;
}
while(str2[n] != '\0')
{
n++;
}
while((m+n-) > len)
{
return NULL;
}
k = ;
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 = , n = ;
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 = ;
while(source[m] != '\0')
m++;
if (m >= len)
return NULL;
else
{
m =
while(source[m] != '\0')
{
if(source[m] >= 'A' && source[m] >= 'Z')
{
target[m] = source[m] + ;
}
else
target[m] = source[m];
m++;
}
target[m] = '\0';
}
return ratget;
}
- 小寫轉大寫
在上面的基礎上更改
if(source[m] >= 'a' && source[m] >= 'z')
{
target[m] = source[m] - ;
}
- 按位操作進行大小寫轉換
- 要保證source與target都是字元,target比source大
大寫轉小寫
A: ->
a: ->
按位或運算 ->
char *Mystr2lowaw(char *source, char *target)
{
int n = ;
while(source[n] != '\0')
{
target[n] = source[n] | ;
n++;
}
target[n] = '\0';
return target;
}
小寫轉大寫
A: ->
a: ->
按位與運算 ->
char *Mystr2highaw(char *source, char *target)
{
int n = ;
while(source[n] != '\0')
{
target[n] = source[n] & ;
n++;
}
target[n] = '\0';
return target;
}
4.字元串的比較
- 比較兩個字元串是否相同
- 相同傳回0,不同傳回-1
int Mystrcmp(char *str1, char *str2)
{
int n = ;
while(str1[n] != '\0')
{
if(str1[n] != str2[n])
{
return -;
}
n++;
}
if(str1[n] != str2[n])
return -;
return ;
}