某台企喜欢出这种题,几个月以前我参加其社招,此题让我挂掉,几个月后的昨天晚上校招,此题仍然出现,依旧让我挂掉,不爽,故想了想
题目是这样的,给出一个字符串 比如 char * src = "dhwj,fefife,ewioqwdsd" ,给出一个分割字符串 char * split = ",gf" ,要求按照后面的字符串内容,将前面那个字符串分割,比如分割成 "dhwj" "e" "i" "e" "wioqwdsd" 。这个函数类似与c标准库里面的strtok函数,且需要将最后的输出符
串保存成字符串链表形式。
这个程序,也就是将命中的src中相应的位置的字符改为空格,其实是改变了原字符串,故src的在使用时候,只能声明成字符数组形式,若声明成为字符串形式,则编译器会将其解释成常量字符串,是只读的,故若需要处理字符串形式的,还需要重新设计
其实如果是字符串形式的,在处理函数里面也只需记录其分割的小段的开头和结尾的指针,然后将其复制到某个字符数组里面,然后将这个字符数组加入到链表里面就可以了,但是不能用指针指向原字符串,在将这个指针加入链表,这样是不行的
写的程序bug应该不少 不过懒得改了 :-)
最后改下,那个insert函数里面既然已经有了n字符的个数,那就分配n个字符的字符数组,不必限定为100个了