stycpy函数:
c语言中的函数,需要头文件:<stdio.h>和<string.h>。
char *stycpy(char *dest,const char* src);
把src地址开始且含有null结束符的字符串复制到以dest开始的地址空间。
sprintf函数:
c语言中的函数,需要头文件<stdio.h>。
int sprintf(char *buffer,const char*format,[argument]..);
把格式化的数据写入某个字符串缓冲区,返回字符串的长度。
eg:n=
sprintf
(buffer,
"%d plus %d is %d"
,a,b,a+b);
题目1:给出一个字符串,把其中的空格全部替换成%20.
这题需要问清楚面试官是在原数组的基础上进行替换,还是建立一个新的字符串。
然后如果从头到尾去扫描空格,则需要进行多次的复制,算法复杂度为O(n^2)。
改成从尾到头去扫描空格。首先扫描字符串的数目以及空格的数目,然后把新字符串的总长度计算出来。设置指针p1和p2分别指向元字符串的末尾、新字符串的末尾。然后在没有遇到空格
的时候,就复制,遇到空格的时候就替换。直到两个指针相重合。
#include<stdio.h> void sapce_replace(char *string_input) //在原字符串上替换,保证原字符串有足够多的空间 { if(string_input==NULL) //特殊情况的考虑,字符串为空。 return; int string_length,spaces_num; for(string_length=0,spaces_num=0;*string_input!='