C语言学习历程——编程练习2——05
来源:互联网 发布:60数据库海盗的帽子 编辑:程序博客网 时间:2024/05/09 04:41
函数功能是首先把b指向的字符串逆向存放
然后将a指向的字符串和b指向的字符串按排列顺序交叉合并到c指向的数组中
两个字符串中过长的剩余字符接在c指向数组的尾部。
分析:主要是交叉合并到c的处理代码如下。
下面是代码实现:
/********************************************************************
编写函数void change(char *a,char *b,char*c)。
函数功能是首先把b指向的字符串逆向存放
然后将a指向的字符串和b指向的字符串按排列顺序交叉合并到c指向的数组中
两个字符串中过长的剩余字符接在c指向数组的尾部。
*********************************************************************/
#include <stdio.h>
#include <stdlib.h>
int mystrlen (char *str) //字符串的长度
{
int length = 0;
if (str == NULL)
{
return -1;
}
while (*str++)
{
length++;
}
return length;
}
void RevStr (char *str, int len)
{
int i = 0;
char temp = 0;
for (i = 0; i < len / 2; i++) //字符串倒置
{
temp = str[i];
str[i] = str[len - i - 1];
str[len - i - 1] = temp;
}
}
void change (char *a, char *b, char *c)
{
int i = 0;
int count = 0;
int blen = mystrlen(b);
RevStr(b, blen); //将字符串b倒置
while (*a) //遍历a字符串,将a中元素装进c里面
{
*c++ = *a;
if (count < blen)
{
*c++ = *b++; //交叉放入c中,a长则把a多余的放入c中,否则把b多余的放入c中
count++;
}
a++;
}
while (*b)
{
*c++ = *b++;
}
*c = '\0';
}
int main()
{
char *a = NULL;
char *b = NULL;
char *c = NULL;
a = (char *)malloc(100 * sizeof(char));
b = (char *)malloc(100 * sizeof(char));
c = (char *)malloc(100 * sizeof(char));
printf ("Please input a string: "); //接收2个字符串
scanf ("%s", a);
printf ("Please input a string: ");
scanf ("%s", b);
change(a, b, c);
printf ("c = %s\n", c); //输出结果
free(c);
c = NULL;
free(b);
b = NULL;
free(a);
a = NULL;
return 0;
}
- C语言学习历程——编程练习2——05
- C语言学习历程——编程练习3——05
- C语言学习历程——编程练习2——01
- C语言学习历程——编程练习2——02
- C语言学习历程——编程练习2——03
- C语言学习历程——编程练习2——04
- C语言学习历程——编程练习2——06
- C语言学习历程——编程练习2——07
- C语言学习历程——编程练习2——08
- C语言学习历程——编程练习2——09
- C语言学习历程——编程练习2——10
- C语言学习历程——编程练习3——01
- C语言学习历程——编程练习3——02
- C语言学习历程——编程练习3——03
- C语言学习历程——编程练习3——04
- C语言学习历程——Training02位运算05
- C语言学习历程——Training04字符串训练05
- C语言学习历程——Training02位运算01
- Java反射机制详解
- LeetCode-224. Basic Calculator (JAVA)实现计算器
- JSP —— Filter 与 页面编码类型
- Java HashMap 源码剖析
- jxel3 0day poc
- C语言学习历程——编程练习2——05
- finalize()方法
- 算法学习 并查集(Union-Find) (转)
- Java HashTable 源码剖析
- Eclipse快捷键Alt + / 不提示解决方法
- Java LinkedHashMap 源码剖析
- 压力测试工具Jmeter
- java常见面试题
- javaweb学习笔记(七)-简单购物功能实现