Program 93:To print sum of digits in string
Output:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
main()
{
int i,j=0,temp,sum=0,n;
char str1[100],str2[100]={0};
printf("Enter a string\n");
gets(str1);
for(i=0;i<strlen(str1);i++)
{
if(str1[i]>='0'&&str1[i]<='9')
{
str2[j]=str1[i];
j++;
}
}
temp=atoi(str2);//To convert string to integer
printf("The digits present in string is %d\n",temp);
while(temp>0)
{
n=temp%10;
sum+=n;
temp=temp/10;
}
printf("The sum of digits is %d\n",sum);
}
Explanation:- This program starts with initializing :
- temp → To store only digits from string temporarily as a number integer format
- i,j,n→Used as helping variable
- sum → To store output sum
- str1 →To store input string
- str2 →To store digits in string format
printf("Enter a string\n"); gets(str1);Taking input from user.Let it be "he123"for(i=0;i<strlen(str1);i++) { if(str1[i]>='0'&&str1[i]<='9') { str2[j]=str1[i]; j++; } }The above for loop traverse from 0 to length of string which here is 5(he123).
Each time it iterates from 0 it checks whether the character lies in between 0 and 9 and if it is ,then that character which lies in between 0 and 9 is stored in str2 one by one- Finally all the digits are stored in str2 in string format
temp=atoi(str2);
atoi will convert string to integer and that is stored in temp=123while(temp>0) { n=temp%10; sum+=n; temp=temp/10; } printf("The sum of digits is %d\n",sum);Now temp will have 123 in("he123").The above forloop will get us sum of the digits.If you would like to understand how that works see this Program 8:Sum of all Digits- Finally sum of 123 is 6
Output:



