技术标签: C语言
问题描述:请编写程序,实现以下功能:在字符串中的所有数字字符前加一个$字符。例如,输入 A1B23CD45,输出 A$1B$2$3CD$4$5。
一个哥们的解法是:用串S拷贝出另一个串T,对串T从头至尾扫描,对非数字字符原样写入串S,对于数字字符先写一个$符号再写该数字字符,最后,在S串尾加结束标志。使用此方法是牺牲空间,赢得时间。
代码如下:
#include <stdio.h> int fun(char *s) { char t[80]; int i, j; for(i=0; s[i]; i++) /*将串s拷贝至串t*/ t[i]=s[i]; t[i]='\0'; for(i=0,j=0; t[i]; i++) /*对于数字字符先写一个$符号,再写该数字字符*/ if(t[i]>='0' && t[i]<='9') { s[j++]='$'; s[j++]=t[i]; } /*对于非数字字符原样写入串s*/ else s[j++]=t[i]; s[j]='\0'; /*在串s结尾加结束标志*/ return 0; } int main() { char s[80]; printf ( "Enter a string:" ); scanf ("%s", s); /*输入字符串*/ fun(s); printf ("The result: %s\n", s); /*输出结果*/ return 0; }
但是我想了想,为什么要先拷贝出来,不能直接再声明一个字符串然后一一赋值,于是自己改了改
#include <stdio.h>
int fun(char *s,char *t)
{
int i,k;
for(i=0,k=0;s[i];i++,k++){
if(s[i]>='0'&&s[i]<='9'){
t[k++]='#';
t[k]=s[i];
}
else
{
t[k]=s[i];
}
}
t[k]='\0';
}
int main()
{
char s[80];
char t[80];
printf ( "Enter a string:" );
scanf ("%s", s); /*输入字符串*/
fun(s,t);
printf ("The result: %s\n", t); /*输出结果*/
return 0;
}
调用接口数据传输格式基本都使用json格式。我们一般使用json_encode($data,256)或json_encode($data,true) 来保证数据中的中文等特殊字符不被转码。但是,如果数据中含有URL或是有转义字符(如斜杆/),这些字符将被转义,前面加上\,如:http://www.xxx.com/xxxx 将会被转义成http:\/\/www.xxx.com\/xxxx 。这种情况下,若接口方未对数据进行json_decode的话,这种URL就是不合法的,你直接在浏览器访问也会访问不
前言在容器领域,docker 公司提出的容器镜像已经成为目前容器打包交付的事实标准。构建镜像需要编写 Dockerfile,如何编写一个优雅的 Dockerfile 呢?在 Docker 公司的官方文档中给出了一篇Best practices for writing Dockerfiles。(https://g.126.fm/03ncYHS)本文在此基础上做了一些修改,力图让大家在工作中写出一份不错的 Dockerfile。本文分为三个部分,首先会直接给出一份 Dockerfile 的参考模板,然
两个的区别是:1.数组键名为数字键名时,要合并的两个数组中有同名数字KEY的时候,使用array_merge()不会覆盖掉原来的值,而使用“+”合并数组则会把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉(注意:不是覆盖而是保留最先出现的那个值)。例子:$array1 = array(1=>’0′);$array2 = array(1=> “data”);$...
从 Doodle Jump 到水果忍者、切绳子、愤怒小鸟,再到最近问鼎 App Store 的“超简单”游戏 Tiny Wings,看着这些应用和游戏在排行上浮沉,我们更多是进入一种观望“神仙打架”的状态:为什么他们赢了?消费者为什么开始不追求画面了? CocoaChina 版主 “deadseafu” 针对这些成功游戏做了独到的总结分析,看看 App Store 是否有一种登顶的必胜...
The case of learned index structures论文阅读(一)链接:https://pan.baidu.com/s/1L65BK2vZ_5qEny04bfHPoA提取码:z98n学习索引结构的实例3.6训练 虽然训练(即加载)时间不是本文的重点,但应该指出,我们所有的模型,浅NNs甚至简单的线性/多变量回归模型,训练相对较快。 简单N...
oracle数据库 生成awr报告、ash报告详细步骤一、生成awr详细步骤1. 手动生成AWR快照号:sqlplus下执行(可选)exec dbms_workload_repository.create_snapshot2.sqlplus下执行:@?/rdbms/admin/awrrpt.sql或者 @$ORACLE_HOME/rdbms/admin/awrrpt.sql3、输入要生成报告的文件...
本人在学习使用Python和plotly处理数据时,经过两个小时艰难试错,终于完成了散点图和折线图的实例。在使用过程中遇到一个大坑,因为官方给出的案例是用在线存储的,所以需要安装jupyter(也就是ipython)才能使用notebook来处理生成的文件,一开始我没太懂iplot和plot之间的差异,导致浪费了很多时间。重要提示:最新的jupyter不支持Python3.2及以下版本。最后我只能...
如何查看日志日志简介在Linux系统中,有三个主要的日志子系统:连接时间日志–由多个程序执行,把纪录写入到/var/log/wtmp和/var/run/utmp,login等程序更新wtmp和 utmp文件,使系统管理员能够跟踪谁在何时登录到系统。进程统计–由系统内核执行。当一个进程终止时,为每个进程往进程统计文件(pacct或acct)中写一个纪录。进程统计的目的是为系统中的基本服务提...
tomcat是什么? 这个软件用来装载你的javaweb程序,可以称它为web容器,你的jsp/servlet程序需要运行在Web容器上,Web容器有很多种,JBoss、WebLogic等等,Tomcat是其中一种。tomcat是一种web服务器,也可以称作运行在服务器(物理意义上的计算机)上的一种软件包。用来对服务器上的HTML文档提供访问权限控制。 以上的说法可能太专业化,一时难以理解
需求:某一个类对象放入一个集合时,就按照类对象的参数(或者自定义的功能)自动排序,使用的时候不用另外调用集合的sort函数。可以实现此功能的集合: TreeSet ,TreeMap。原理:这两个集合提供了相应的构造函数:TreeSet(Comparator<?superE> comparator)TreeMap(Comparator<?superK> comparator)
Safari浏览器是Mac OS系统的默认浏览器,如何设置更改成其他的浏览器呢?这里小编教大家一个简单的设置方法,一起来看看吧!1.打开系统偏好设置,点击通用2.进入通用后找到默认网页浏览器,然后选择我们想要浏览器即可如果你想给自己的电脑设置一个默认浏览器,那么就试试这个简单的方法吧...