低级进阶-200410 字符串

一份课设作业引出的问题

这两天接了一份课设代写,套路居多,但我还是遇到了不太熟悉的情况,那就是c语言程序中的汉字提取和分离。

可以用strtok(),但我对此不熟悉,不理解,就绕了路。具体使用方法可以看下面的那个链接

在这份课设要求里,要求实现用“程序+设计”这类词组组合,找到含有这两个词组的对应名称。一开始我用数组遍历+strstr()做了,这对英文和数字是适用,但用数组或者指针遍历不能适应汉字的存储方式,只能另寻途径。

要实现这个功能,还是用一开始的思路:先词组分离,再strstr()

如何实现词组分离呢?我用了strstr(str,"+")试图得出开头是加号的指针,但谜之错误。

随后,我就strchr(str,'+'),成功得到了相应指针,指针+1后,就得到了第二个词语的地址str2。关于第一个词语的地址,要用strncat(str1,str,num),这个函数能把str前num个字符赋给str1,num由strlen(str)-strlen(str2)-1计算。

分离后用strstr()的返回值来判断str1和str2在同一个字符串中出现。!NULL就是出现了。

关于c语言字符串操作总结,在此不赘述了。大家可以看这篇博文:https://www.cnblogs.com/1996-1-0-3-0/p/9470304.html

原文地址:https://www.cnblogs.com/leefree/p/12675881.html