在笔试中会有一些关于字符串的操作的实现题目,比较普遍的有:字符串反转、字符串转数字。
下面是字符串反转的一种实现
char *reverse_str(char *str)
{
char *head=str;
char *tail=str;
while(*++tail);
tail--; //指向最后一个字符
while(head<tail)
{
char temp=*head;
*head++=*tail;
*tail--=temp;
}
return str;
}
下面是字符串转数字的一种实现(可以扩展该函数来处理小数或者负数)
int myatoi(char *str)
{
char *tmp=str+strlen(str);
int value=0;
int level=1;
while(tmp-->=str)
{
int num=*tmp-'0';
value+=num*level;
level*=10;
}
return value;
}