c语言把数字字符串中的数字相加的程序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言把数字字符串中的数字相加的程序相关的知识,希望对你有一定的参考价值。
如果有两个数字字符串分别是“1234”和“4567”,求让他们各位各位数相加的程序。(让他们1和4相加,2和5相加……)。不要只限制在这两个数上。谢谢各位了。
代码如下:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
char str[100];
char buf[10];
int i;
int n = 0;
bool flag = 0;
int j = 0;
//gets(str);
scanf("%s", str);
for (i = 0; i != strlen(str); ++ i)
if (str[i] >= '0' && str[i] <= '9')
buf[j] = str[i];
j++;
flag = 1;
else if (flag)
n += atoi(buf);
memset(buf,0,10);//清空缓存区
flag = 0;
j = 0;
printf("%s",buf);
printf("%d\\n", n);
扩展资料
(C语言)常见字符函数和字符串函数
1、strlen
功能:计算字符串长度,不包含’\\0’
返回值:返回字符串的字符数
说明:strlen() 函数计算的是字符串的实际长度,遇到第一个’\\0’结束;参数指向的字符串必须以 ’ \\0 ‘结束。函数返回值一定是size_t ,是无符号的。如果你只定义没有给它赋初值,这个结果是不定的,它会从首地址一直找下去,直到遇到’\\0’停止。
sizeof返回的是变量声明后所占的内存数,不是实际长度,此外sizeof不是函数,仅仅是一个操作符,strlen()是函数。
2、strcpy
功 能: 将参数src字符串拷贝至参数dest所指的地址
返回值: 返回参数dest的字符串起始地址
说明:源字符串必须以’\\0’结束。会将源字符串的’\\0’拷贝到目标空间。目标空间必须可变。如果参数dest所指的内存空间不够大,可能会造成缓冲溢出的错误情况,在编写程序时需特别留意,或者用strncpy()来取代。
参考技术A #include <stdio.h>main()
char a[20];
char b[20];
char c[20];
int a_len;
int b_len;
int i;
printf ("please input string a: ");
scanf ("%s", a);
printf ("please input string b: ");
scanf ("%s", b);
a_len = strlen (a);
b_len = strlen (b);
for (i = 0; i < a_len; i++)
if (a[i] < '0' || a[i] > '9')
printf ("输入数字串a有错误%s\n");
return;
memset (c, 0, sizeof (c));
sprintf (c, "%d\n", atol (a)+atol(b));
printf ("相加后的数字=%s\n", c);
1、先输入
2、检查合法性
3、相加输出 参考技术B 最后怎么存放呢??
这是相加的,用两个数组就可以了
#define N 10
main()
int a[N],b[N];
int i,sum;
for(i=0;i<N;i++)
sum=a[i]+b[i];
……
参考技术C 相加之后怎么存放呢?给详细点要求,我好写啊本回答被提问者采纳
用c语言或者python将文件中特定字符串后面的数字相加
从点评网爬了一些餐馆的评论
每家餐馆是一个文件,现在想统计评论数,求读取每个文件中 “评论人数:60” 中 的60并相加,求具体程序,60是个例子
代码应该不难吧。既然用爬虫爬下来了,为什么爬取数据的时候没做处理呢。
之前用过Scrapy爬虫框架,挺好用的,你可研究下。
代码:
#!coding=utf-8import os
import re
import random
# 获取当前目录文件列表
def getNum():
flist = os.listdir(os.getcwd())
# 遍历文件
for f in flist:
if f != os.path.basename(__file__):
with open(f, 'r') as fn:
text = fn.read()
num = re.findall(r'评论人数:(\\d+)', text)
print f, num
# 文件写入测试
def test():
for i in range(10):
with open('%d.txt' % i, 'w') as f:
f.write('文件:%d\\n每家餐馆是一个文件,统计评论数,求读取每个文件中 “评论人数:%d” 中 的60并相加,求具体程序,60是个例子' % (i, random.randint(1, 200)))
print u'文件写入完毕'
if __name__ == '__main__':
# test()
getNum()
代码基本符合要求,但健壮性有些差。你自己用的时候修改吧
测试结果:
C:\\Python27\\python.exe D:/11/c.py文件写入完毕
0.txt ['131']
1.txt ['181']
2.txt ['56']
3.txt ['119']
4.txt ['18']
5.txt ['103']
6.txt ['88']
7.txt ['115']
8.txt ['160']
9.txt ['136']
Process finished with exit code 0追问
大神,文件路径怎么改?我没学过Python,代码都是别人给的。。
追答# 你把下面这句修改了flist = os.listdir(os.getcwd())
# 改成下面的
flist = ''
print u'路径必须为全路径:如下示例'
print u'D:/test/'
flist = str(raw_input(u'输入路径,默认为当前目录'))
if list == '':
flist = os.listdir(os.getcwd())
这样应该可以了
谢谢大神了
参考技术A 1、先把字符串后面的数字截取出来,转换成数字格式即可相加。2、C语言有atoi、atol、atof等库函数,可分别把ASCII编码的字符串转化为int、long、float类型的数字。
头文件:stdlib.h
函数原型:int atoi(const char* nptr);
(另外两个类似)
举个例子:
char *str="123";
int num=atoi(str);
执行后,num的值被初始化为123
以上是关于c语言把数字字符串中的数字相加的程序的主要内容,如果未能解决你的问题,请参考以下文章