字符串的高级应用-char a[100] = "1+2=;3-2=;2*5=;8/4=;" 得到char a[100] ="1+2=3;3-2=1;2*5=10;8/4=2;"

 1 #include<stdio.h>
 2 #include<string.h>
 3
 4 int main()
 5 {
 6     char a[100] = "1+2=;3-2=;2*5=;8/4=;" ;
 7     char b[100] = {0};
 8     char *s;
 9     s = strtok(a, ";");
10     while(s)
11     {
12
13         int i,j;
14         char c;
15         sscanf(s, "%d%c%d=", &i, &c, &j);
16         int res = 0;
17         switch(c)
18         {
19         case ‘+‘:
20             res = i + j;
21             break;
22
23         case ‘-‘:
24             res = i - j;
25             break;
26
27         case ‘*‘:
28             res = i * j;
29             break;
30
31         case ‘/‘:
32             res = i / j;
33             break;
34         default    :
35             res = 0;
36
37         }
38
39         char tmp[100] = {0};
40         sprintf(tmp, "%s%d;", s, res);   //把运算式放入到tmp数组
41         strcat(b, tmp);    //tmp是在循环内定义的,因此要在循环外再定义一个b
42         s = strtok(NULL, ";");
43
44     }
45
46         strcpy(a, b);
47         printf("%s",a);
48     return 0;
49
50  } 

原文地址:https://www.cnblogs.com/yangxiaoqin/p/8371754.html

时间: 2024-10-22 12:00:29

字符串的高级应用-char a[100] = "1+2=;3-2=;2*5=;8/4=;" 得到char a[100] ="1+2=3;3-2=1;2*5=10;8/4=2;"的相关文章

C语言 将一个数字字符串转换成这个字符串对应的数字(包括正浮点数、负浮点数 函数原型:double my_atof(char *str)

编写一个函数,将一个数字字符串转换成这个字符串对应的数字(包括正浮点数.负浮点数) 例如:"12.34"  返回12.34 "-123.34" 返回-123.34 函数原型:doublemy_atof(char *str) 提示: 需要在函数中判断负号,小数点,还要判断是不是数字字符.在判断小数点时需定义一个计数器来计算小数点后数字字符的个数. #include <stdio.h> #include <math.h> double my_at

python3 f-string格式化字符串的高级用法

从Python 3.6开始,f-string是格式化字符串的一种很好的新方法.与其他格式化方式相比,它们不仅更易读,更简洁,不易出错,而且速度更快! 在Python 3.6之前,有两种将Python表达式嵌入到字符串文本中进行格式化的主要方法:%-formatting和str.format(). %-formatting 字符串对象具有使用%运算符的内置操作,您可以使用它来格式化字符串. name = "tom" print("猫的名字叫%s"%name) 输出:

【Python】字符串切片高级用法

原文地址:https://www.cnblogs.com/HGNET/p/12114310.html

输入100以内的数,累加求和,如果输入不是100以内的提示用户重新输入

for (; ; ) { Console.Write("请输入一个100以内的整数:"); int a = int.Parse(Console.ReadLine()); int sum = 0; if (a > 100 ||a <=0) { Console.WriteLine("请重新输入"); } else { for (int i = 1; i <= a; i++) { sum += i; } Console.WriteLine(sum); b

将100和灯泡编成100个号,即:1……100,现在有100个人去拉开关,第一个人把1的倍数的灯号开关都拉一下,第2个人把2的倍数的灯号都拉一下,直到第100人将100号灯泡拉一下.假定开始时,灯泡全不亮,请问这100人全拉完后,哪些编号的灯泡是亮的?请用编程证明你的方法

想到之前面试的一道题目,解决这个题,就是看到 其约数为基数个时就是亮的.用JS去实现也很简单,两个for循环可以了.个人的解答方法如下 let lightArr = [] // 先循环一遍1到100 for (let index = 1; index <= 100; index++) { let arr = [] for (let j = 1; j <= index; j++) { // 如果index % j等于0则表示j是其index的约数就是往arr里面添加 if (index % j

char型字符串(数组)与string型字符串 指针与引用

一.常指针: int *const p;    //指针不可改变,但是指针指向的数据可以改变. 指向常量的指针: const int *p;    //指针可以改变,但是指针指向的数据不可以改变. 指向常量的常指针: const int *const p;    //指针不可改变,且指针指向的数据也不可改变. 引用就是别名,定义引用的同时必须要对引用进行初始化. 二.利用引用返回多个值: 引用就是别名,引用必须要初始化. #include "stdafx.h" #include <

char *p、char p[]、字符串的几个题目

总结一下遇到的关于char *p.char p[]和字符串的题目: 例一:(指针的指针) 1 void getmemory(char **p) 2 { 3 p = (char *)malloc(100); //p应该是*p,因为这里是对传入的二重指针所指向的内容分配空间,而不是二重指针的地址, 4 //所以应该为 *p = (char*)malloc(100); 5 } 6 7 int main() 8 { 9 char *str = NULL; 10 getmemory(str); //这里应

C语言编程题目(4)文件高级应用与字符串高级操作

题目: 0x01 从键盘输入一个字符串,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件"test.dat"中保存.输入的字符串以"!"结束. 0x02 有两个磁盘文件“A.dat”和“B.dat”,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件“C.dat”中. 0x03 将合法C源程序每行前加上行号并删除其所有注释. 0x04 统计一个英文文本文件中26个英文字母出现次数并按英文字母序输出统计结果,查找并替换此英文文本

(不包括\0) 编写一个int string_len(char *s), 返回字符串s的字符长度

#include <stdio.h> /* (不包括\0) 编写一个int string_len(char *s), 返回字符串s的字符长度 */ int string_len(char *s); int main() { //char *name = "itcast"; // 男 \u434\u4343\u434 int size = string_len("tre777"); printf("%d\n", size); retur