• 关于

    dest

    的搜索结果

回答

假设已经有一个kmp函数,返回substr在str中出现的位置,如果不存在则返回NULL(行为和strstr一样)。 #include <stdio.h> #include <string.h> #include <stdlib.h> const char *kmp(const char *str, const char *substr) { return strstr(str, substr); //kmp的实现略过 } void str_replace(char *dest, const char *src, const char *pattern, const char *replace) { int lp = strlen(pattern), lr = strlen(replace); const char *temp = src, *last = src; while ((temp = kmp(temp, pattern)) != NULL) { //copy to dest memcpy(dest, last, temp - last); dest += temp - last; strcpy(dest, replace); dest += lr; temp += lp; last = temp; } strcpy(dest, last); } int main() { char dest[1000]; str_replace(dest, "abcdefgabcdefgabcdefg", "fg", "----"); printf("%s\n", dest); str_replace(dest, "abcdefgabcdefgabcdefg", "ef", "----"); printf("%s\n", dest); str_replace(dest, "hello world", "l", "ab"); printf("%s\n", dest); return 0; } 算法其实挺简单,接口的设计,得写额外的代码来计算需要多大的空间,上面就略过了,另外附一个由函数负责分配空间的安全版(相应的后果是要额外扫一遍): #include <stdio.h> #include <string.h> #include <stdlib.h> const char *kmp(const char *str, const char *substr) { return strstr(str, substr); } char *str_replace(const char *src, const char *pattern, const char *replace) { int count = 0, lp = strlen(pattern), lr = strlen(replace); char *dest = NULL, *ret = NULL; const char *temp = src, *last = NULL; while ((temp = kmp(temp, pattern)) != NULL) { count++; temp += lp; } dest = ret = (char *)malloc(sizeof(lr - lp) * count + strlen(src) + 1); if (ret == NULL) return NULL; temp = src, last = src; while ((temp = kmp(temp, pattern)) != NULL) { //copy to dest memcpy(dest, last, temp - last); dest += temp - last; strcpy(dest, replace); dest += lr; temp += lp; last = temp; } strcpy(dest, last); return ret; } int main() { char *dest = NULL; dest = str_replace("abcdefgabcdefgabcdefg", "fg", "----"); if (dest != NULL) printf("%s\n", dest); free(dest); dest = str_replace("abcdefgabcdefgabcdefg", "ef", "----"); if (dest != NULL) printf("%s\n", dest); free(dest); dest = str_replace("hello world", "l", "ab"); if (dest != NULL) printf("%s\n", dest); free(dest); return 0; }
杨冬芳 2019-12-02 02:23:23 0 浏览量 回答数 0

回答

#include <stdio.h> #include <string.h> #include <stdlib.h> const char *kmp(const char *str, const char *substr) { return strstr(str, substr); //kmp的实现略过 } void str_replace(char *dest, const char *src, const char *pattern, const char *replace) { int lp = strlen(pattern), lr = strlen(replace); const char *temp = src, *last = src; while ((temp = kmp(temp, pattern)) != NULL) { //copy to dest memcpy(dest, last, temp - last); dest += temp - last; strcpy(dest, replace); dest += lr; temp += lp; last = temp; } strcpy(dest, last); } int main() { char dest[1000]; str_replace(dest, "abcdefgabcdefgabcdefg", "fg", "----"); printf("%s\n", dest); str_replace(dest, "abcdefgabcdefgabcdefg", "ef", "----"); printf("%s\n", dest); str_replace(dest, "hello world", "l", "ab"); printf("%s\n", dest); return 0; }
a123456678 2019-12-02 02:33:02 0 浏览量 回答数 0

问题

请问一个 memcpy 的问题

#include<stdio.h> #include<stdlib.h> ...
a123456678 2019-12-01 19:45:44 836 浏览量 回答数 1

万券齐发助力企业上云,爆款产品低至2.2折起!

限量神券最高减1000,抢完即止!云服务器ECS新用户首购低至0.95折!

回答

#include<stdio.h> #include<malloc.h> #include<string.h> #include<assert.h> #include<stdlib.h> void getNext(const char * t,int * Next)//get the Next array { int k=-1; int j=0; int size=strlen(t); Next[0]=-1; while(j<size) { if(k==-1||t[j]==t[k])//if k==-1 there are two conditions //one is this is the first time entering the loop { //if t[j]==t[k] get the next[j+1] directly k++;//the other is the end of the iteration cos k==-1; j++; Next[j]=k;//whatever Next[j]=k } else k=Next[k]; } } int myStrstr(const char * Dest,const char *subStr)//find the starting position of the sub { //in the Dest through KMP int destSize=strlen(Dest); int subSize=strlen(subStr); int i,j; int * Next=(int *)(malloc(sizeof(int)*subSize)); i=j=0; assert((Dest!=NULL)&&(subStr!=NULL)); getNext(subStr,Next); while(i<destSize&&j<subSize) { if(j==-1||Dest[i]==subStr[j])//if j==-1 the main string need match the next elements { //and the subString begin from the beginning i++; //if Dest[i]==subStr[j] both string need shift to the j++; // next elements } else j=Next[j]; //if match fail,glide back to Next[j] } if(j==subSize)return i-j; return -1; } int main() { char *temp,*sub,* Dest;//to store the substring to be matched int ch; unsigned int templen,length=20*sizeof(char); unsigned int mlength=20*sizeof(char);//the original length of the memory sub=(char*)malloc(length); Dest=(char*)malloc(length); if(sub==NULL||Dest==NULL)//allocation failure { printf("memory allocate failure\n"); exit(0); } temp=sub; printf("please input the substring:\n"); while((ch=getchar())!=10)//read the sub String { if((temp-sub)/sizeof(char)==length)//if running out of the memory { templen=length; sub=realloc(sub,length+=20*sizeof(char)); if(sub==NULL) { printf("sub memory allocate failure\n"); exit(0); } temp=sub+templen*sizeof(char);//reset the temp cos the sub may change its value } *temp++=ch; } *temp='\0'; temp=Dest; printf("please input the mainstring:\n"); while((ch=getchar())!=10)//read the main String { if((temp-Dest)/sizeof(char)==mlength) { templen=mlength; Dest=realloc(Dest,mlength+=20*sizeof(char));//if running out of the memory if(Dest==NULL) { printf("sub memory allocate failure\n"); exit(0); } temp=Dest+templen*sizeof(char);//reset the temp cos the Dest may change its value } *temp++=ch; } *temp='\0'; printf("the starting position is :%d\n",myStrstr(Dest,sub));//get the starting position free(Dest); free(sub); return 0; }
一键天涯 2019-12-02 01:26:08 0 浏览量 回答数 0

回答

/** * 复制一个目录及其子目录、文件到另外一个目录 * @param src * @param dest * @throws IOException */ private void copyFolder(File src, File dest) throws IOException { if (src.isDirectory()) { if (!dest.exists()) { dest.mkdir(); } String files[] = src.list(); for (String file : files) { File srcFile = new File(src, file); File destFile = new File(dest, file); // 递归复制 copyFolder(srcFile, destFile); } } else { InputStream in = new FileInputStream(src); OutputStream out = new FileOutputStream(dest); byte[] buffer = new byte[1024]; int length; while ((length = in.read(buffer)) > 0) { out.write(buffer, 0, length); } in.close(); out.close(); } }
蛮大人123 2019-12-02 02:41:01 0 浏览量 回答数 0

回答

Status CopyBiTree(BiTree &dest, BiTree &sour) {//dest是复制目标,sour是源二叉树 if (!sour)//如果树为空,则复制空树 { dest = NULL; } else { BiTreeNode *root = Buynode(sour->data); dest = root;//复制二叉树的根结点 CopyBiTree(dest->Lchild, sour->Lchild);//复制其左子树 CopyBiTree(dest->Rchild, sour->Rchild);//复制其右子树 } return OK; } 递归思想如下: ①如果树为空,则复制空树 ②否则,复制二叉树的根结点,递归调用复制其左子树,递归调用复制其右子树
游客886 2019-12-02 01:24:14 0 浏览量 回答数 0

回答

这里的危险是,设置sys.stdout = sys.old_stdout会阻止代码在本地替换上获得新的句柄,但不会阻止任何旧的 句柄正常工作。 作为一个人为的例子: class MyThread(threading.Thread): def __init__(self, log_dest=sys.stdout): self.log_dest = log_dest def run(self): # ...do something-or-other, and occasionally... self.log_dest.write('Hey, something happened') 由于初始化MyThread时会为log_dest分配一个值,因此将sys.stdout更改回其旧值不会阻止它继续尝试使用现在无效的对象。 回答来源:stackoverflow
is大龙 2020-03-24 19:06:18 0 浏览量 回答数 0

回答

arraycopy是数组复制的意思,给你个例子。 public class ArraycopyTest { // arraycopy(Object src, int srcStartIndex, Object dest, int destStartIndex, // int length) // 从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。 // srcStartIndex:原数组中要开始复制的第一个元素的位置 // destStartIndex: 目标数组中要开始替换的第一个元素的位置 // length: 要复制的元素的个数 public static void main(String[] args) { // 静态初始化两个长度不同的数组 int src[] = { 1, 2, 3, 4, 5, 6 }; int dest[] = { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 }; // 将数组src的4个元素copy到数组dest中 System.arraycopy(src, 1, dest, 2, 4); // 输出数组dest for (int i = 0; i < 10; i++) { System.out.println(dest[i]); } } }
景凌凯 2020-04-03 21:49:06 0 浏览量 回答数 0

问题

C-SDK之如何实现管理文件(三)?

分片拷贝文件 当拷贝一个大于500MB的文件,建议通过oss_upload_part_copy接口来进行拷贝。以下代码实现分片拷贝一个文件 aos_pool_t *p;oss_request_options_t *opti...
青衫无名 2019-12-01 21:46:02 1083 浏览量 回答数 0

回答

参考以下代码: import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.text.DecimalFormat; import java.util.Random; public class Test { public static void main(String[] args) throws Exception { File src = new File("D:\\src.txt"); File dest = new File("D:\\dest"); FileReader fr = new FileReader(src); BufferedReader br = new BufferedReader(fr); int lineno = 1; int index = 1; dest.mkdirs(); FileWriter fw = new FileWriter(new File(dest, creIndex(index++) ".txt")); (br.ready()) { (lineno++ % 500 == 0) { fw.close(); = new FileWriter(new File(dest, creIndex(index++) + ".txt")); } String line = br.readLine(); fw.write(line + "\r\n"); } fw.close(); br.close(); fr.close(); } public static String creIndex(int num) { DecimalFormat df = new DecimalFormat("00"); return df.format(num); } }
蛮大人123 2019-12-02 01:58:58 0 浏览量 回答数 0

回答

如果您不想使用列表: var foos = new List (array); foos.RemoveAt(index); return foos.ToArray(); 您可以尝试我尚未实际测试过的这种扩展方法: public static T[] RemoveAt (this T[] source, int index) { T[] dest = new T[source.Length - 1]; if( index > 0 ) Array.Copy(source, 0, dest, 0, index); if( index < source.Length - 1 ) Array.Copy(source, index + 1, dest, index, source.Length - index - 1); return dest; } 并像这样使用它: Foo[] bar = GetFoos(); bar = bar.RemoveAt(2);
保持可爱mmm 2020-02-07 22:38:29 0 浏览量 回答数 0

问题

为什么在C语言中获取“函数的冲突类型”?

我正在使用以下代码: char dest[5]; char src[5] = "test"; printf("String: %s\n", do_something(dest, sr...
保持可爱mmm 2020-02-08 21:59:16 0 浏览量 回答数 1

问题

为什么此优化会导致我的合并排序失败?

我正在进行非递归合并排序,并且我想出了一个优化方法,可以加快它的速度。要点是,我不是先合并到一个临时缓冲区中,然后每次将其复制回数据位置,而是先在一个方向上合并ÿ...
几许相思几点泪 2019-12-29 20:59:03 1 浏览量 回答数 1

问题

OAS adup备份管理的配置问题

这个OAS帮助文档中写的:https://help.aliyun.com/document_detail/27409.html?spm=5176.doc27409.6.580.3MwaWm远程阿里云归档存储vaultDEST="oas+ht...
winxml 2019-12-01 19:44:39 2091 浏览量 回答数 0

问题

为何两个变量无法同时声明时赋给内存地址

我有以下代码,在XCode中编译通过,在运行时发生错误, #include <stdio.h> #include <string.h> #include <stdlib.h> int main () {...
a123456678 2019-12-01 19:46:18 757 浏览量 回答数 1

回答

用脚本吧dest=~ /etc/host.new src=/etc/host for i in echo $dest | cut -d‘ ’ -f 1- do cp $src $i done
云栖技术 2019-12-02 02:35:53 0 浏览量 回答数 0

回答

建立两个文件夹_ src |_ dest把你的文件写的src文件下新建.babelrc{"preset":["react","es2015"]}然后执行 babel src -d dest
a123456678 2019-12-02 02:06:53 0 浏览量 回答数 0

回答

<a href="#dest">destination</a> <a name="dest">destination is here!!!</a>
小旋风柴进 2019-12-02 02:09:10 0 浏览量 回答数 0

回答

postgres本身支持数据库备份操作,基于安装路径下bin目录下的两个脚本文件pg_dump pg_dumpall  一个支持单库备份,一个支持整个数据库备份 这里实现的是不同机子间的备份,例如我在101.62上面是线上数据库,我需要定时备份到101.68这台机子上。 以下是命令: -- 备份 pg_dump 数据库名 -h 要备份的数据库ip -p 你的端口 -U postgres > 备份结果文件名.dmp pg_dumpall -h 要备份的数据库ip -p 你的端口 -U postgres > 备份结果文件名.dmp example: pg_dump database -h 192.168.101.62 -p 5432 -U postgres > fileName pg_dumpall -h 192.168.101.62 -p 5432 -U postgres > fileName -- 还原 psql -h 要还原的数据库ip -p 端口 -U postgres -d 指定数据库名 < 备份文件地址 psql -h 要还原的数据库ip  -p 端口 -U postgres < 备份文件地址 example: psql -h 192.168.101.68 -p 5432 -U postgres -d new_db < fileName psql -h 192.168.101.68 -p 5432 -U postgres < fileName 注意:用到的脚本都在postgres的安装bin下,所以该方案要求接受备份文件的机子也需要安装postgres 这样显然,我这里需要的是定时备份,那么只需要利用linux的crontab 定时器就可以了 crontab相关命令:     crontab –e 添加定时任务     crontab -l 表示列出所有的定时任务     crontab -r 表示删除用户的定时任务   0 23 * * *  /temp/pgsql_backup.sh >> /temp/pgdata_export.log  2>&1   //例如每晚23点执行 这个命令指的是每晚23点执行脚本进行备份,日志写入/temp/pgdata_export.log中 crontab如果没有安装,centos执行yum安装即可:       yum -y install vixie-cron       yum -y install crontabs pgsql_backup.sh脚本为: #!/bin/bash export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/apache2/bin:/root/bin:/usr/local/pgsql/bin export LANG=zh_CN.UTF-8 export export PGPASSWORD=postgres   dest_folder=/temp/ dest_file=pgdata_$(date +%Y%m%d).dmp tar_file=pg_$(date +%Y%m%d).tar.gz   echo [$(date +'%F %H:%M:%S')]  准备导出postgresql数据库 导出文件地址为$dest_folder$dest_file echo [$(date +'%F %H:%M:%S')]  ..................正在导出............................ pg_dumpall -h 你需要备份的ip -p 你需要备份的端口 -U postgres > $dest_folder$dest_file   echo [$(date +'%F %H:%M:%S')]  导出成功,准备压缩已导出文件 压缩文件地址为$dest_folder$tar_file echo [$(date +'%F %H:%M:%S')]  ..................正在压缩............................   cd $dest_folder tar -czf $tar_file $dest_file   echo [$(date +'%F %H:%M:%S')]  压缩完毕,准备删除数据库导出文件 rm -f  $dest_folder$dest_file echo [$(date +'%F %H:%M:%S')] 数据库导出文件已删除 ———————————————— 版权声明:本文为CSDN博主「fwfg12113」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/fwfg12113/article/details/84643765
养狐狸的猫 2019-12-02 02:12:20 0 浏览量 回答数 0

问题

lua中合并的merge是怎么用的?

local dest = {a = 1, b = 2}local src = {c = 3, d = 4}table.merge(dest, src)并不能运行。。。...
matz 2019-12-01 20:23:25 1075 浏览量 回答数 3

问题

grunt中很多任务都有 dist 和 dest 这两个词,请问这两个是那个单词的缩写?翻译成什么

grunt中很多任务都有 dist 和 dest 这两个词,请问这两个是那个单词的缩写?翻译成什么...
杨冬芳 2019-12-01 20:06:55 1357 浏览量 回答数 1

问题

分享一个python批量上传文件程序

分享一个python批量上传文件程序,请各位大虾拍砖 命令行模式 python xxx.py -d 云存储路径 -l 本地文件目录 from oss_api import *from oss_xml_handler ...
jwjzy1020 2019-12-01 20:17:13 18558 浏览量 回答数 5

回答

这似乎正在工作。注释中指出的修复: void merge_sort(int* data, size_t length) { int* buffer = malloc(length * sizeof(int)); int swap = false; /* ** removed the initial copy */ #if OPTIMIZE for (size_t step = 1; step < length; step *= 2, swap = !swap) { int* src = swap ? buffer : data; int* dest = swap ? data : buffer; size_t i; /* fix, using i in 2nd loop */ for (i = 0; i < length - step; i += (step * 2)) { /* fix (removed size_t) */ merge(src, dest, i, i + step, MIN(length, i + (step * 2))); } for( ; i < length; i++) /* fix, copy single run if present */ dest[i] = src[i]; /* fix, copy single run if present */ } if (swap) { for (size_t i = 0; i < length; i++) { data[i] = buffer[i]; } } #else 替代修补程序: for (size_t step = 1; step < length; step *= 2, swap = !swap) { int* src = swap ? buffer : data; int* dest = swap ? data : buffer; for (size_t i = 0; i < length; i += (step * 2)) { /* fix */ merge(src, dest, i, MIN(length, i+step), MIN(length, i+(step * 2))); /* fix */ }
几许相思几点泪 2019-12-29 20:59:30 0 浏览量 回答数 0

回答

您可以尝试使用System.arraycopy() int[] src = new int[]{1,2,3,4,5}; int[] dest = new int[5]; System.arraycopy( src, 0, dest, 0, src.length ); 问题来源于stack overflow
保持可爱mmm 2020-01-15 16:36:09 0 浏览量 回答数 0

问题

发送短信中设置的SmsUpExtendCode在上行短信参数问题

在发送短信中设置  request.setSmsUpExtendCode("10001"); 用DefaultAlicomMessagePuller类拉取SmsUp上行短信消息 message.getMessageBo...
1903469688506418 2019-12-01 19:06:50 93 浏览量 回答数 0

回答

我用的是这样的结构 (gulpfile.js): // Environment setup. var env = { production: false }; // Environment task. gulp.task("set-production", function(){ env.production = true; }); // Css process. gulp.task("postcss", function(){ var processors = [ autoprefixer({ browsers: ["Android 4.1", "iOS 7.1", "Chrome > 31", "ff > 31", "ie >= 10"] })]; if(env.production){ processors.push(csswring()); return gulp.src(["./stylesheets/src/*.css", "!./stylesheets/src/fontello.css"]) .pipe(postcss(processors)) .pipe(gulp.dest("./stylesheets/dest")); }else{ return gulp.src(["./stylesheets/src/*.css", "!./stylesheets/src/fontello.css"]) .pipe(sourcemaps.init()) .pipe(postcss(processors)) .pipe(sourcemaps.write(".")) .pipe(gulp.dest("./stylesheets/dest")) .pipe(filter("*.css")) .pipe(reload({stream: true})); } }); gulp.task("dev", ["postcss"]); gulp.task("release", ["set-production", "clean", "postcss"]); 同一个postcss的构建任务,会有两条路径,生产环境路径不包含sourcemap。
杨冬芳 2019-12-02 02:33:54 0 浏览量 回答数 0

问题

Spark-sql可以在没有安装配置单元的情况下工作吗?

我在一个的ubuntu实例上安装了spark 2.4.0。Spark数据帧工作正常但是当我尝试对数据帧使用spark.sql时,如下例所示,我收到错误“无法访问Metastore。此类不应在运行时访问”。 spark.read.json("...
社区小助手 2019-12-01 19:28:47 519 浏览量 回答数 1

问题

发送短信中设置的SmsUpExtendCode对应短信上行推送中的哪个参数?

发送短信中设置的SmsUpExtendCode对应短信上行推送中的哪个参数?是dest_code吗?为什么我每次设置不同的 SmsUpExtendCode,推送过来的dest_code都是一样的。...
1136341555772374 2019-12-01 19:09:18 206 浏览量 回答数 0

回答

建议直接用 commons-io 项目中的 FileUtils.copyFile(...),别再自己造轮子######肯定是有原因才这样问的,而且我真的想知道 这两种方式为什么会不一样,一个正确一个错误,你能说说么?###### public static void copyByChannel(String src, String dest) throws Exception { RandomAccessFile raf = new RandomAccessFile(src, "r"); FileOutputStream fos = new FileOutputStream(dest); try { FileChannel srcChannel = raf.getChannel(); FileChannel destChannel = fos.getChannel(); destChannel.transferFrom(srcChannel, 0, srcChannel.size()); } finally { raf.close(); fos.close(); } } public static void copy(String src, String dest) throws Exception { final int SIZE = 2048 * 80; FileInputStream fis = null; BufferedInputStream bis = null; FileOutputStream fos = null; BufferedOutputStream bos = null; try { fis = new FileInputStream(src); bis = new BufferedInputStream(fis); fos = new FileOutputStream(dest); bos = new BufferedOutputStream(fos); byte[] buffer = new byte[SIZE]; int length = -1; while((length = bis.read(buffer, 0, SIZE)) != -1) { bos.write(buffer, 0, length); bos.flush(); } } finally { bis.close(); fis.close(); bos.close(); fos.close(); } }</pre> ######额 这些我知道 我关心的是为什么先把buffer保存在List里面,然后遍历再写入文件 会出错,而不是怎么复制文件
kun坤 2020-05-29 11:49:11 0 浏览量 回答数 0

回答

感觉你写的也没什么问题,具体 option 可能查下文档吧。css 是会被覆盖的,我是这样配置的var styles = function (f) { var sass_dir = dirs.styles gulp.src(sass_dir + f) .pipe(plumber()) .pipe(sourcemaps.init()) .pipe(sass()) .pipe(autoprefixer({ browsers: ['last 2 version'], cascade: false })) .pipe(sourcemaps.write('./')) .pipe(gulp.dest(dirs.dest)); }
杨冬芳 2019-12-02 02:36:05 0 浏览量 回答数 0

云产品推荐

上海奇点人才服务相关的云产品 小程序定制 上海微企信息技术相关的云产品 国内短信套餐包 ECS云服务器安全配置相关的云产品 开发者问答 阿里云建站 自然场景识别相关的云产品 万网 小程序开发制作 视频内容分析 视频集锦 代理记账服务 阿里云AIoT