leetcode 第184场周赛第一题(数组中的字符串匹配)
2021-02-18 15:20
标签:def 直接 turn 没有 函数 src col dss 越界 一、函数的运用 1,strstr(a,b); 判断b是否为a的子串,如果是,返回从b的开头开始到a的结尾 如“abcdefgh” “de” 返回“defgh”; 如果不是子串,返回NULL; 2,memcpy(a,b+n,c); 将b串从第n位后的c个字符串复制到a中,返回a串; (注:做完函数后需要添加上b[c] = ‘\0‘) 如果吧b+n换成b就是从头开始 将代码换成 就是直接复制words[i]; 二、malloc开辟二维字符串; 首先开辟一个指向字符串指针的指针; 等判断出适合题目的子串后 再开辟一个字符串指针 最后代码如下 (希望下次easy题不要再抄作业了 ̄ω ̄) leetcode 第184场周赛第一题(数组中的字符串匹配) 标签:def 直接 turn 没有 函数 src col dss 越界 原文地址:https://www.cnblogs.com/luoyoucode/p/12688777.htmlmemcpy(arr[cnt], words[i], strlen(words[i])+1);
char **arr = (char**)malloc(sizeof(char*)*wordsSize);
arr[cnt] = (char*)malloc(sizeof(char)*(strlen(words[i])+1));
1 char ** stringMatching(char ** words, int wordsSize, int* returnSize){
2 int cnt = 0;
3 char **arr = (char**)malloc(sizeof(char*)*wordsSize);
4 for(int i = 0; i )
5 {
6 for(int j = 0; j )
7 {
8 if(i != j)
9 {
10 if(strstr(words[j],words[i]) != NULL)
11 {
12 arr[cnt] = (char*)malloc(sizeof(char)*(strlen(words[i])+1));
13 memcpy(arr[cnt], words[i], strlen(words[i])+1);
14 //上面两行+1是为了多开辟一个空间给arr[cnt]存下words[i]字符串后末尾的‘\0‘
15 //因为strlen函数返回的长度是不包含‘\0‘的长度
16 //且memcpy返回的arr在字符串结束后最后一位是没有‘\0‘
17 //一定要记住加‘\0‘!!不然会越界!
18 cnt++;
19 break;
20 }
21 }
22 }
23 }
24 *returnSize = cnt;
25 return arr;
26
27
28 }
上一篇:爬虫5 scrapy框架2 全站爬取cnblogs, scarpy请求传参, 提高爬取效率, 下载中间件, 集成selenium, fake-useragent, 去重源码分析, 布隆过滤器,
下一篇:多线程面试题(2020)
文章标题:leetcode 第184场周赛第一题(数组中的字符串匹配)
文章链接:http://soscw.com/index.php/essay/57110.html