- 博客(6)
- 收藏
- 关注
原创 对于KMP算法的一些理解(C语言实现)
所以,回到上述的if条件的j的取值问题,如果一开始i和j==0,那么第一次比较时,即使两个串的字符不匹配,if条件也会执行(因为满足j==0),接着是i++,j++;有两个字符串“abcdef”和“cd”,其中abcdef是主串,cd是子串,也就是模式串,要从abcdef中找cd这个子串,首先,a应该和c比较,不匹配,那么再拿字符b来跟子串的字符c比较。而在我实现的串中,数组的首元素的下标是从0开始的,即有的人是从数组的第二个位置开始存数据(第一个位置通常用来记录串的长度),而我是从第一个位置开始存。
2023-10-20 23:52:51
77
1
原创 C语言用三步翻转法实现字符串旋转
如方法1:只需要把字符串最后一个字符取出并放到临时变量tmp里,然后把剩下的字符一一往后挪,再把刚刚取出的最后一个字符放到第一个字符串的起始位置上去。//所以*(str + j + 1)指向的是字符串的结束标志'\0',而如果这时进行*(str + j + 1) = tmp的操作,就会将'A'放到\0'的位置上。上述代码的意思是:逆序剩下的字符,str+n指向了不用旋转的第一个字符,而str+len-1指向了不用旋转的最后一个字符也就是整个数组的最后一个字符。经过以上的操作,我们就实现了字符串旋转的函数。
2023-03-15 00:02:41
1879
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人