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;
}

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

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

#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;
}

  1. 输入一行字符串,把字符串翻转 。
#include<iostream>
#include<string>
#include<algorithm> using namespace std; int main() {
string s;
getline(cin, s);
reverse(begin(s),end(s));
cout << s << endl;
}
  1. 大整数加法。实现任意范围的两个整数的加法(提示:整数的范围用 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)的更多相关文章

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

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

  2. R语言拆分字符串

    R语言拆分字符串 aaa<-"aa;bb;cc"ccc<-strsplit(aaa,split=";") bbb<- unlist(strsp ...

  3. C语言之字符串处理函数

    C语言中字符串处理函数介绍 下面介绍8种基本的常用的字符串处理函数,在数值数组中也常常用到(部分函数).所有的C语言编译系统中一般都提供这些函数. 1.puts函数——输出字符串的函数 一般的形式为p ...

  4. Swift3.0语言教程字符串与URL的数据转换与自由转换

    Swift3.0语言教程字符串与URL的数据转换与自由转换 Swift3.0语言教程字符串与URL的数据转换 Swift3.0语言教程字符串与URL的数据转换与自由转换,字符串中的字符永久保存除了可以 ...

  5. Swift3.0语言教程字符串与文件的数据转换

    Swift3.0语言教程字符串与文件的数据转换 Swift3.0语言教程字符串与文件的数据转换,如果想要对字符串中的字符进行永久保存,可以将字符串中的字符写入到文件中.当然,开发者也可以将写入的内容进 ...

  6. Swift3.0语言教程字符串转换为数字值

    Swift3.0语言教程字符串转换为数字值 Swift3.0语言教程字符串转换为数字值,在NSString中,开发者可以将字符串转换为数字值,通过这些数字值可以实现一些功能,如加法运算.减法运算等.数 ...

  7. Swift3.0语言教程字符串大小写转化

    Swift3.0语言教程字符串大小写转化 Swift3.0语言教程字符串大小写转化,在字符串中,字符串的格式是很重要的,例如首字母大写,全部大写以及全部小写等.当字符串中字符很多时,通过人为一个一个的 ...

  8. C语言学习 —— 字符串的学习(一)

    这是本人在学习 C语言有关 字符串内容 时的相关笔记 由于本人技术有限,如有错误,还望指正 C语言中数据类型中只有 字符型(char),而 char型 变量一次只能存储一个字符,在日常工作中经常需要定 ...

  9. iOS开发-OC语言 (三)字符串

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: center; font: 24.0px "PingFang SC" } p ...

随机推荐

  1. MySQL Transaction--两阶段提交事务

    分布式事务两阶段提交 在分布式事务中,需要协调所有分布式原子事务参与者,并决定提交或回滚分布式事务,因此采用两阶段提交协议: 第一阶段为请求阶段或表决阶段,事务协调者通知事务参与者准备提交或取消事务, ...

  2. YAML Class ID Reference

    Classes Ordered by ID Number ID Class 1 GameObject 2 Component 3 LevelGameManager 4 Transform 5 Time ...

  3. C# to IL 10 Exception Handling(异常处理)

    Exception handling in IL is a big let down. We expected a significant amount of complexity,but were ...

  4. C# HttpClient请求Webapi帮助类

    引用 Newtonsoft.Json // Post请求 public string PostResponse(string url,string postData,out string status ...

  5. c# 一些细节

    1.动态对象和匿名对象偶然看到一个语法,觉得特别方便然后频繁使用,但是没有深究,直到今天忽然发现我潜意思中对它的认知居然是错误的. var data=new { State=1,Message=&qu ...

  6. chgrp命令详解

    Linux chgrp命令 Linux chgrp命令用于变更文件或目录的所属群组. 在UNIX系统家族里,文件或目录权限的掌控以拥有者及所属群组来管理.您可以使用chgrp指令去变更文件与目录的所属 ...

  7. mysql二进制日志详解

    一.什么是二进制日志 二进制日志主要记录mysql数据库的变化,二进制日志包含所有更新了数据或者潜在更新了数据(如没有匹配到任何行的delete语句),语句以时间的形式保存,描述了数据的更改.二进制日 ...

  8. gpio模拟I2C,驱动pcf8574T

    一.pcf8574T介绍 查看pcf8574T的数据手册, A表示读或写,当A为1的时候表示读,当A为0的时候表示写.现把地址控制线,即A2.A1.A0全部接地,可以得到读控制指令为0x41,写控制指 ...

  9. 【java】一维数组

    数组概念: 同一种类型数据的集合,实际数组也是一个容器. 定义方式: //定义方法1:元素类型 [] 数组名 =new 元素类型 [数组元素个数或数组长度] 如 int [] arry =new in ...

  10. 【java】注释

    一.注释   1. 注释类型 [a]. 单行注释 // 单行注释 [b]. 多行注释 /* 多行注释 */ [c]. 文档注释 /** 文档注释 */ 一般情况下,需求,实现方式用多行注释,类和方法上 ...