C语言强化——字符串(1)
- 实现 mystrcpy(), mystrcmp(), mystrcat(), mystrlen() ;
 
#include<stdio.h>
void mystrcpy(char *i,char *j) {
	while (*j != '\0') {
		*i = *j;
		i++;
		j++;
	}
}
int mystrcmp(char *i, char *j) {
	if (strlen(i) != strlen(j)) {
		return -1;
	}
	while (*i != '\0') {
		if (*i != *j) {
			return -1;
		}
		i++;j++;
	}
	return 1;
}
void mystrcat(char *i, char *j) {
	while (*i != '\0') i++;
	while (*j != '\0') {
		*i = *j;
		i++;
		j++;
	}
}
int mystrlen(char *i) {
	int num = 0;
	while (*i != '\0') {
		num++;
		i++;
	}
	return num;
}
int main() {
	char a[10] = { 0 };
	char b[10] = { 0 };
	printf("Please input the the string of b:\n");
	scanf("%s", b);
	mystrcpy(a, b);
	printf("strcpy后 a : %s\n", a);
	if (mystrcmp(a, b) == 1) {
		printf("a,b字符串相等\n");
	}
	else {
		printf("a,b字符串不相等\n");
	}
	mystrcat(a, b);
	printf("strcat后 a : %s\n", a);
	printf("%s的长度为%d\n", a, mystrlen(a));
	return 0;
}

输入一行字符串(单词和若干空格), 输出该行单词个数。
输出该行单词(每个单词一行)
#include<string>
#include<iostream>
#include<cctype>
using namespace std;
int main() {
	string s;
	freopen("1.txt", "r", stdin);
	getline(cin, s);
	int len = s.size(), num = 0;
	string ans;
	for (int i = 0;i < len;++i) {
		if (isalpha(s[i])) {
			ans += s[i];
			if (!(isalpha(s[i+1]))) {
				cout << ans << endl;
				num++;
				ans.clear();
			}
		}
	}
	cout << num << endl;
	return 0;
}

- 输入一行字符串,把字符串翻转 。
 
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main() {
	string s;
	getline(cin, s);
	reverse(begin(s),end(s));
	cout << s << endl;
}
- 大整数加法。实现任意范围的两个整数的加法(提示:整数的范围用 int 型的变量无法表示,50位)
 
#include<iostream>
#include<string>
using namespace std;
struct bign {
	int d[1000];
	int len;
	bign() {
		memset(d, 0, sizeof(d));
		len = 0;
	}
};
bign change(string str) {   //将整数转换为bign
	bign a;
	a.len = str.size();
	for (int i = 0;i < a.len;i++) {
		a.d[i] = str[a.len - i - 1] - '0';
	}
	return a;
}
bign add(bign a, bign b) {
	bign c;
	int carry = 0;
	for (int i = 0;i < a.len || i< b.len ;i++) {
		int temp = a.d[i] + b.d[i] + carry;
		c.d[c.len++] = temp % 10;
		carry = temp / 10;
	}
	if (carry != 0) {  //处理进位
		c.d[c.len++] = carry;
	}
	return c;
}
void print(bign a) {
	for (int i = a.len - 1;i >= 0;i--) {
		printf("%d", a.d[i]);
	}
	printf("\n");
}
int main() {
	printf("输入你要计算的两个大整数\n");
	string a, b;
	while (cin >> a && cin >> b) {
		bign num_a = change(a);
		bign num_b = change(b);
		bign ans = add(num_a, num_b);
		print(ans);
	}
	return 0;
}
												
											C语言强化——字符串(1)的更多相关文章
- C语言强化——字符串(2)
		
1.将包含字符数字的字符串分开,使得分开后的字符串前一部分是数字后一部分是字母.例 如"h1ell2o3" -> "123hello" #include& ...
 - R语言拆分字符串
		
R语言拆分字符串 aaa<-"aa;bb;cc"ccc<-strsplit(aaa,split=";") bbb<- unlist(strsp ...
 - C语言之字符串处理函数
		
C语言中字符串处理函数介绍 下面介绍8种基本的常用的字符串处理函数,在数值数组中也常常用到(部分函数).所有的C语言编译系统中一般都提供这些函数. 1.puts函数——输出字符串的函数 一般的形式为p ...
 - Swift3.0语言教程字符串与URL的数据转换与自由转换
		
Swift3.0语言教程字符串与URL的数据转换与自由转换 Swift3.0语言教程字符串与URL的数据转换 Swift3.0语言教程字符串与URL的数据转换与自由转换,字符串中的字符永久保存除了可以 ...
 - Swift3.0语言教程字符串与文件的数据转换
		
Swift3.0语言教程字符串与文件的数据转换 Swift3.0语言教程字符串与文件的数据转换,如果想要对字符串中的字符进行永久保存,可以将字符串中的字符写入到文件中.当然,开发者也可以将写入的内容进 ...
 - Swift3.0语言教程字符串转换为数字值
		
Swift3.0语言教程字符串转换为数字值 Swift3.0语言教程字符串转换为数字值,在NSString中,开发者可以将字符串转换为数字值,通过这些数字值可以实现一些功能,如加法运算.减法运算等.数 ...
 - Swift3.0语言教程字符串大小写转化
		
Swift3.0语言教程字符串大小写转化 Swift3.0语言教程字符串大小写转化,在字符串中,字符串的格式是很重要的,例如首字母大写,全部大写以及全部小写等.当字符串中字符很多时,通过人为一个一个的 ...
 - C语言学习 —— 字符串的学习(一)
		
这是本人在学习 C语言有关 字符串内容 时的相关笔记 由于本人技术有限,如有错误,还望指正 C语言中数据类型中只有 字符型(char),而 char型 变量一次只能存储一个字符,在日常工作中经常需要定 ...
 - iOS开发-OC语言 (三)字符串
		
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: center; font: 24.0px "PingFang SC" } p ...
 
随机推荐
- pythoy-生成器
			
生成器:只有在调用的时候才会生成相应的数据(调用到这个数据的时候才会生成这个数据,没有调用到时就没有这个数据)只记录数据的当前位置 生成器不能像普通的列表一样,通过下标或者切片的方式去取生成器只能通过 ...
 - js 三目运算
			
语法: 一个条件,二选一: 条件?当条件满足时返回的值:当条件不满足时返回的值 多个条件,多选一: 条件1?条件1满足时的值: 条件2?条件2满足时的值: 条件n ?条件n 满足时的值: 默认值: 以 ...
 - 【JVM】java对象
			
一.对象内存布局 对象在内存中存储可分为3块区域:对象头,实例数据,对齐填充 1.对象头 对象头包含两部分内容. 第一部分:存储对象自身的运行时数据,哈希吗(hashCode),GC分代年龄,锁状态标 ...
 - 【java规则引擎】《Drools7.0.0.Final规则引擎教程》第4章 4.4 约束(Pattern的一部分)
			
4.4.3 约束(Pattern的一部分) 前面我们已经介绍了条件约束在Pattern中位置了,那么什么是条件约束呢?简单来说就是一个返回true或者false的表达式,比如下面的5小于6,就是一个约 ...
 - nginx安装最简单教程
			
[root@bogon ~]# wget -c http://nginx.org/download/nginx-1.7.9.tar.gz #下载安装包 [root@bogon ~]# ls anaco ...
 - 在sorted range上的操作(includes,set_union,set_intersection,set_difference)
			
includes //版本一:用operator <比较元素 template <class InputerIterator1,class InputerIterator2> boo ...
 - webpack报错:Module build failed (from ./node_modules/babel-loader/lib/index.js): Error: Cannot find module 'babel-preset-env' from '...' - Did you mean "@babel/env"?
			
webpack报错:Module build failed (from ./node_modules/babel-loader/lib/index.js): Error: Cannot find mo ...
 - Linux yum仓库配置
			
yum仓库配置 10.1 概述 YUM(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器.基于RPM包 ...
 - 如何在Macbook苹果笔记本上按右键点击(适用小米黑苹果)
			
1.按下Control键.保持按下Control(Ctrl)键,同时点击鼠标. 这一操作相当于在一个双键鼠标上右击. 点击鼠标后,你可以松开Control键. 该方法适用于单键鼠标或者MacBook ...
 - 基于spring的placeholder思路处理配置信息敏感信息加密解密的实践
			
基于Spring的placeholder处理思路,实现系统配置信息敏感信息的加密解密处理. 我们的处理方案,是基于类org.springframework.beans.factory.config.P ...