C语言字符串1,C语言强化——字符串(1)

实现 mystrcpy(), mystrcmp(), mystrcat(), mystrlen() ;

#include

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;

}

C语言字符串1,C语言强化——字符串(1)_第1张图片

输入一行字符串(单词和若干空格), 输出该行单词个数。

输出该行单词(每个单词一行)

#include

#include

#include

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;

}

C语言字符串1,C语言强化——字符串(1)_第2张图片

输入一行字符串,把字符串翻转 。

#include

#include

#include

using namespace std;

int main() {

string s;

getline(cin, s);

reverse(begin(s),end(s));

cout << s << endl;

}

大整数加法。实现任意范围的两个整数的加法(提示:整数的范围用 int 型的变量无法表示,50位)

#include

#include

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语言强化——字符串(2)

1.将包含字符数字的字符串分开,使得分开后的字符串前一部分是数字后一部分是字母.例 如"h1ell2o3" -> "123hello" #include& ...

R语言拆分字符串

R语言拆分字符串 aaa

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语言学习 &mdash;&mdash; 字符串的学习(一)

这是本人在学习 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 ...

随机推荐

Java Web开发之分页(ajax)

1.需要用到的jar包.js文件 JSONArray().fromObject()需要的jar包: (1)commons-beanutils-1.8.3.jar (2)commons-collecti ...

SQL中order by;group up;like;关联查询join on的用法

排序order by的用法: 1.order by 字段名1 asc/desc, 字段名2 asc/desc,... 先按照字段名1的升序/降续给表进行排列 然后 按照字段名2的升序/降续给表进行排列 ...

C# web api 返回类型设置为json的两种方法

每次写博客,第一句话都是这样的:程序员很苦逼,除了会写程序,还得会写博客!当然,希望将来的一天,某位老板看到此博客,给你的程序员职工加点薪资吧!因为程序员的世界除了苦逼就是沉默.我眼中的程序员大多都不 ...

git的基本应用(一)

Git常用的命令: mkdir  文件夹名称           创建文件夹 git  init                     将文件夹交个git管理 ls -ah              ...

如何让SQLServer的 itemNum 字段 按照数字大小顺序排序

我的 itemNum 从1到20,可是超过了SQLServer的默认排序这样的1101112...19234567如何才能让排序成为这样1234567891011.. . 解决办法:因为 itemNu ...

BZOJ4479 : [Jsoi2013]吃货jyy

若$k\leq 15$,那么可以设$d[i][S]$表示经过了$S$集合的边,现在位于$i$点的最短路. 可以用Dijkstra算法在$O(n^22^k)$时间内求出. 否则若$k>15$,那么 ...

4.3Python数据类型(3)之字符串类型

返回总目录 目录: 1.字符串的概念 2.字符串的形式 3.字符串的转义符 4.字符串一般操作 5.字符串函数操作 (一)字符串的概念 由单个字符组成的一个集合 (二)字符串的形式 双引号与单引号的效 ...

Map的isEmpty()与==null的区别

isEmpty()方法判断Map是否有内容(即new分配空间后是否put键值对),若没有内容则true,否则false == null是判断map是否为null(即是否new分配空间,和其中的键值对没 ...

Babelfish 基本试用

测试使用docker 部署 docker-compose文件 注意网络模型选择的host,同时配置了opentracing 服务 version: "3" services:  b ...

RHEL SHELL快捷键

Shell快捷键 CTRL+a  调到命令行头  e  调到命令行尾 CTRL+u  光标前面的删除  k  光标后面的删除 CTRL+→词的头   词的尾 ESC+.   粘贴上个命令的尾词 杀掉远 ...

你可能感兴趣的:(C语言字符串1)