C语言拼接字符串以及进制转换
#include<stdio.h>
#include<stdlib.h>
#include<string.h> char *join1(char *, char*);
void join2(char *, char *);
char *join3(char *, char*); int main(void) {
char a[4] = "abc"; // char *a = "abc"
char b[4] = "def"; // char *b = "def" char *c = join3(a, b);
printf("Concatenated String is %s\n", c); free(c);
c = NULL; return 0;
} /*方法一,不改变字符串a,b, 通过malloc,生成第三个字符串c, 返回局部指针变量*/
char *join1(char *a, char *b) {
char *c = (char *) malloc(strlen(a) + strlen(b) + 1); //局部变量,用malloc申请内存
if (c == NULL) exit (1);
char *tempc = c; //把首地址存下来
while (*a != '\0') {
*c++ = *a++;
}
while ((*c++ = *b++) != '\0') {
;
}
//注意,此时指针c已经指向拼接之后的字符串的结尾'\0' !
return tempc;//返回值是局部malloc申请的指针变量,需在函数调用结束后free之
} /*方法二,直接改掉字符串a,*/
void join2(char *a, char *b) {
//注意,如果在main函数里a,b定义的是字符串常量(如下):
//char *a = "abc";
//char *b = "def";
//那么join2是行不通的。
//必须这样定义:
//char a[4] = "abc";
//char b[4] = "def";
while (*a != '\0') {
a++;
}
while ((*a++ = *b++) != '\0') {
;
}
} /*方法三,调用C库函数,*/
char* join3(char *s1, char *s2)
{
char *result = malloc(strlen(s1)+strlen(s2)+1);//+1 for the zero-terminator
//in real code you would check for errors in malloc here
if (result == NULL) exit (1); strcpy(result, s1);
strcat(result, s2); return result;
}
进制转换
C语言拼接字符串以及进制转换的更多相关文章
- python27期day03:字符串详解:整型、可变数据类型和不可变数据类型、进制转换、索引、切片、步长、字符串方法、进制转换、作业题。
1.%s: a = "我是新力,我喜欢:%s,我钟爱:%s"b = a%("开车","唱跳rap")print(b)2.整型: 整数在Pyt ...
- C++笔记(7)——一些模拟题:简单模拟、查找元素、图形输出、日期处理、进制转换、字符串处理
以下内容基本来自<算法笔记>,作者为胡凡,建议直接买书看,我这里只是摘抄部分当笔记,不完整的. 简单模拟 就是一类"题目怎么说你就怎么做"的题目.这类题目不涉及算法,只 ...
- 总结day3 ---- 进制转换,字符串切片,字符串常用方法.,for 循环,
前情提要: int 的相关操作 进制转换 bit_lenth() str 的索引,以及常用的相关方法 for 循环 索引 切片 相关方法 一 : int 的相关操作 int 主要用于生活中的计算问题 ...
- 19-3-4 Python进制转换;bool str int三者之间的转换;字符串的索引,切片;for循环的使用
进制转换: 二进制转十进制: 0010 1111 = 1*2**0+1*2**1+1*2**2+1*2**3+1*2**5 十进制转换二进制: 用十进制数除2逆序取余 --->101010 布 ...
- SHUoj 字符串进制转换
字符串进制转换 发布时间: 2017年7月9日 18:17 最后更新: 2017年7月9日 21:17 时间限制: 1000ms 内存限制: 128M 描述 Claire Redfield ...
- 一起talk C栗子吧(第七回:C语言实例--进制转换)
各位看官们.大家好,从今天開始.我们讲大型章回体科技小说 :C栗子,也就是C语言实例. 闲话休提, 言归正转.让我们一起talk C栗子吧! 看官们.上一回中咱们说的是生成随机数的样例.这一回咱们说的 ...
- C# 进制转换 在什么情况下使用16进制,字节数组,字符串
C# 进制转换 Admin2013年9月18日 名人名言:从工作里爱了生命,就是通彻了生命最深的秘密.——纪伯伦 1.请问c#中如何将十进制数的字符串转化成十六进制数的字符串 //十进制转二进制Con ...
- 【字符串】P2084 进制转换-C++
题目描述 今天小明学会了进制转换,比如(10101)2 ,那么它的十进制表示的式子就是 : 1*2^4+0*2^3+1*2^2+0*2^1+1*2^0, 那么请你编程实现,将一个M进制的数N转换成十进 ...
- C语言实现进制转换——超图面试题
递归:递归的原理,就是自己调用自己本身.存在一个顺序的问题,如果在递归前的是顺序执行,递归后的是逆序执行,如下: void gogogo() { //递归之前 gogogo(); //递归之后 } 递 ...
随机推荐
- PHP获取客户端和服务器端IP(转)
客户端的ip变量: $_SERVER['REMOTE_ADDR'] :客户端IP,也有可能是代理IP $_SERVER['HTTP_CLIENT_IP']:代理端的IP,可能存在,也可能伪造 $_SE ...
- 邪恶的PLS
今天碰到一个存储过程编译错误,提示PLS-00103错误,关于这个错误网上能搜到一大把,原因很多,我碰到的错误提示如下: Compilation errors for PROCEDURE ETL.PR ...
- strlen出错
1.特别奇怪的错误 $url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid= ...
- Shader 入门笔记(三) ShaderLab 初识
Unity中,Unity Shader 都是ShaderLab 来编写的.ShaderLab 是Unity提供的编写Unity Shader 的一种说明性语言. 1)Properties :定义了着色 ...
- 【转】SHELL variables default value, ${var:-DEFAULT}和${var=DEFAULT}的一点区别
${var:-DEFAULT}和${var=DEFAULT}的区别: ${var:-DEFAULT} If var not set or is empty, evaluate expression a ...
- BSGS(Baby Steps,Giant Steps)算法详解
BSGS(Baby Steps,Giant Steps)算法详解 简介: 此算法用于求解 Ax≡B(mod C): 由费马小定理可知: x可以在O(C)的时间内求解: 在x=c之后又会循环: 而BS ...
- [C#] 获取计算机内部信息 - ComputerInfoHelper
获取计算机内部信息 - ComputerInfoHelper 电脑有许多信息,如名称.CPU 和硬盘容量等,整理一个 Helper 来获取,下面目前只整理了一个方法,获取其它信息的方法类似. 一.代码 ...
- 钉钉自定义机器人配合SVN钩子事件进行消息的推送实践
目前很多公司还是使用SVN(TortoiseSVN)进行版本控制,使用简单,适合管理一般项目.协同办公软件目前钉钉比较成熟,阿里也一直在宣传推广,这两年公司也在使用,主要用于信息的沟通,其它的绩效.考 ...
- vue打包后不使用服务器直接访问方法
根据官网打包执行npm run build 后dist文件夹打开的index.html 是空白 需要开启http服务器才能访问,以下是解决办法 1.找到config文件夹下的index文件 修改成 2 ...
- Angular2学习笔记四(之Http通信)
前言: 在这里,我描述三个场景,即系统的注册与登录,及登录后的操作: 1.注册场景,前端页面传入用户名密码,通过一个api接口传到后台,在后台对这用户及密码进行保存: 2.登录场景,前端用户传入用户名 ...