字符串相加函数c语言 字符串相加函数c语言怎么表示

C语言中如何将两个字符串加在一起

可以使用string.h头文件中的strcat函数 char *a="123"; char *b = "abc"; strcat(a,b)即可,更多的字符串操作可以看一下string.h头文件中 有好多封好的, 如果不想用的话就可以自己写一个函数

成都创新互联公司专业为企业提供曹妃甸网站建设、曹妃甸做网站、曹妃甸网站设计、曹妃甸网站制作等企业网站建设、网页设计与制作、曹妃甸企业网站模板建站服务,10余年曹妃甸做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

函数内容:1.获取两个字符串的总长度,如total_len=len1+len2然后申请一个动态的数组大小为total_len 然后把字符串中的内容依次放进去就可以了。

c语言把数字字符串中的数字相加的程序

代码如下:

#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()来取代。

C语言-字符串相加考虑进位

①命令行

#includestdio.h

#includestring.h

~

②定义函数-初始化

/*定义函数和字符串变量。*/

char *fun(char *s1,char *s2,char *r)

/*初始化,即赋初值。*/

{int len,cy=0,md;

char *p,*q,*t;

len=strlen(s1);

/*len=s1的长度=s2的长度。*/

p=s1+len-1;

/*p用于储存,s1用于移动。

s1为数组名,指向数组首地址。指针s1向后移动len-1位,即指向字符串最后一位。*/

q=s2+len-1;

/*q用于储存,s2用于移动。

s2为数组名,指向数组首地址。指针s2向后移动len-1位,即指向字符串最后一位。*/

t=r+len;

/*t用于存储p和q指向字符相加的结果,

r用于移动,指向相加后数据首地址,可能产生进位,多预留一位,即len不减1。*/

*(t+1)='\0';

/*因为预留一位,所以字符串结束字符也向后移动一位。*/

③定义函数-循环函数

while(p=s1)

{md=*p-'0'+*q-'0'+cy;

/*md表示made decimal创建十进制数,即字符串相加后的数值。星p-'0'表示将字符转换成数值。*/

if(md=10) cy=1;

else cy=0;

/*cy表示carry ,进位标志位。初始值为0,如果有进位,cy为1,下次循环时,加在更高一位上。*/

*t=md%10+'0';

/*星t用于储存,md用于计算,cy用于传递进位。

因为进位md可能大于10,所以取余取个位,+'0'转变为ASCLL码值。*/

p--;q--;t--;}

/*向前移动,个位加完,加十位。*/

④定义函数-循环结束

if(cy==1) *t='1';

/*循环结束,即p<s1,由于p移动方向是向高位,此时p指向最高位。

如果cy==1,表示进位,令指针星t当前处为1。*/

else while(*r++=*++t);

/*如果cy==0,表示最高位没有数,令指针星t从当前处后移一位到有数的地方。*/

return r;

/*相加后r所指字符串作为返回值。*/

}

~

⑤主函数

void main()

{char s1[100],s2[100],s3[101];

/*s123是用于存储字符串的数组,考虑相加后可能有进位,s3开辟101位储存空间。*/

strcpy(s1,"12345");

/*初始化s12,即赋初值。*/

strcpy(s2,"54321");

fun(s1,s2,s3);

printf("%s+%s=%s\n",s1,s2,s3)

}

⑥思路

1.字符串:s1,s2,s3(形参r)

2.字符转换成数值

借助指针:p,q,t

转换成ASCLL码值

即数值:*p,*q,*t

转换成对应整数

即数值:*p-'0',*q-'0',md%10+'0'

3.数值转换成字符串:r

即r所指的字符串。


标题名称:字符串相加函数c语言 字符串相加函数c语言怎么表示
本文来源:http://scyanting.com/article/dopcies.html