C语言面试高频问题:自己代码实现字符串相关的常用API
Posted 行稳方能走远
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言面试高频问题:自己代码实现字符串相关的常用API相关的知识,希望对你有一定的参考价值。
参照:C语言面试高频问题:自己代码实现字符串相关的常用API
作者:图触靓
发布时间: 2020-08-08 13:31:33
网址:https://blog.csdn.net/bhbhhyg/article/details/107878102
1、实现get(char *);从键盘获取字符串
-
void myget(
char *
str)
-
{
-
while(
1)
-
{
-
scanf(
"%c",
str);
-
if(*
str==
'\\n')
-
{
-
*
str=
'\\0';
-
return;
-
}
-
str++;
-
}
-
}
2、实现put(char *);输出字符串
-
void myput(char *str)
-
{
-
while(*str!=
'\\0')
-
{
-
printf(
"%c",*str++);
-
-
}
-
printf(
"\\n");
-
return;
-
}
3、实现strlen(char *);求字符串长度
-
int mystrlen(char *str)
-
{
-
int
len=
0;
-
while(
1)
-
{
-
if(*str==
'\\0')
-
{
-
-
return
len;
-
}
-
str++;
-
len++;
-
}
-
-
}
4、实现strcpy(char *,char *);拷贝str2的内容到str1;
-
void mystrcpy(char * str1,char * str2)
-
{
-
while(*str2!=
'\\0')
-
{
-
*str1=*str2;
-
str1++;
-
str2++;
-
}
-
}
5、实现strcat(char *,char *);合并字符串,把str2的内容合并到str1的后面
-
void mystrcat(char *str1,char *str2)
-
{
-
while(*str1!=
'\\0')
-
{
-
str1++;
-
}
-
while(*str2!=
'\\0')
-
{
-
*str1=*str2;
-
str2++;
-
str1++;
-
}
-
return;
-
}
6、实现strcmp(char *,char*)比较字符串大小,若两字符串内容完全相同,返回0,若str1比str2长返回1,str1比str2短则返回-1,长度相同内容不同也返回-1
-
int mystrcmp(char *str1,char *str2)
-
{
-
int str1len=
0;
-
int str2len=
0;
-
while(*str1!=
'\\0')
-
{
-
str1++;
-
str1len++;
-
}
-
while(*str2!=
'\\0')
-
{
-
str2++;
-
str2len++;
-
}
-
if(str1len-str2len==
0){
-
for(
int i=
0;i<str1len;i++)
-
{
-
if(*str1==*str2){
-
str1--;
-
str2--;
-
}
-
else{
-
return
-1;
-
}
-
}
-
return
0;
-
-
}
-
else
if(str1len-str2len>
0){
-
return
1;
-
}
-
else {
-
return
-1;
-
}
-
}
以上仅是个人思路,并非算法最优
以上是关于C语言面试高频问题:自己代码实现字符串相关的常用API的主要内容,如果未能解决你的问题,请参考以下文章