c语言题,题目是编写fun函数,功能是:将一个数字字符串转换为一个整数。不得调用c语言提供的将字符串

作者&投稿:代春 (若有异议请与网页底部的电邮联系)
编写一个函数,将一个数字字符串转换为一个整数~

1、新建一个 将字符串转换为数字.py,如图所示。

2、中文编码声明注释:# coding=gbk,如图所示。

3、int() 函数的作用:用于将一个字符串或数字转换为整型。

4、定义一个 str1 变量,代码:str1="10"。

5、使用 int() 函数将 str1 变量转换为数字。

6、运行脚本,输出 str1 变量,如图所示。

思路:先判定字符串第一位是否为符号,“+”或没有则符号为正(1),“-”则符号为负(-1)。然后每一位的数值是ASCII值减去48。计算公式为:123=12*10+3=(1*10+2)*10+3.

#include
int atoi_(char *p)
{int a = 0;
int b = 0;
int i = 0;
int j = 0;
int sign = 1;
if (*p =='+')
p = p+1;//判定首位是否为正号。指针指到符号后面。
if (*p == '-')//判定首位是否是负号。
{
p = p+1;
sign = -1;//符号标识符为-1.
}
while (*(p+i) >= 48 && *(p+i) <= 57)
{
i++; //计算一共多少位数字。
}
for (j = 0;j < i;j++)
{
b = *(p+j)-48;
a = a*10+b;
}
a = a*sign;//计算出来的数字乘以前面判定的符号。
return a;
}
int main(void)//主函数。
{char str1[10] = "";
int a;
printf("请输入字符串str1 = ");
gets(str1);
a = atoi_(str1);//调用atoi_函数。
printf("the number is %d.
",a);
return 0;
}

for(j=i;j<n-1;j++)

{
t=p[i]-'0';//这里是将字符串的第i个位置的字符换成数字,即减去0的ascll码值。
//============
s1=10;
for(k=j;k<n-1;k++)
t*=s1;//这里是将换出来的数字移动到它所在的为,即如果是百为就要乘100。而这里它是看此时的字符到字符串结束的长度来决定的,如果到结束还有一位就乘10,一直累计乘10。
s+=t;//这里就是将前面转换好的数累计相加。
//=============
等号之间的可以用楼上的简化。。
}

太繁琐了,给个简洁的。
int str2dec(char s[]) {
int i = 0,num = 0;
int sign = 1,n = strlen(s);
if(s[0] == '-' ) {
++i;
sign = -1;
for(; i < n; ++i)
num = 10 * num + s[i] - '0';
return bun;
}

用强制转换啊。

C语言的题目,规定输入的字符只包含字母和*号。请编写函数fun,功能是:将...
答:1、其实头函数每个都需要用到的就是#include <stdio.h>.在这儿给大家说的就是这里需要添加一个字符串函数,因为程序里面涉及到了输出和输入字符串以及字符。#include <string.h>。2、定义两个相同容量的字符串储存的变量 char a[100]; char b[100];。以及整数变量 int c; int i=0,j=0; ...

C语言编程(编写fun函数):函数fun是根据输入n,求下面数列前n项的和 s...
答:double fun(int n) { double sum = 0.0;for (int i = 2; i <= n + 1; i++) { double an = pow(-1, i + 1) / (pow(2, i - 1) * (i - 1));sum += an;} return sum;}

C语言,请编写函数fun(自定义函数),其功能是:将一组得分中,去掉一个最...
答:int n){int temp = 0;for (int i=1;i<n;i++){if (a[temp]>a[i]){temp =i;}}return temp;}void fun() //去掉最高分和最低分的函数{int i,

c语言程序设计请编写一个函数fun,它的功能是:将ss所指字符串中所有下...
答:include<stdio.h>#include <stdlib.h>#include <string.h>void fun(char a[]){ int i; int t=strlen(a); for(i=0;i<t;i++) { if(i%2!=0) { if(toascii(a[i])>=97&&toascii(a[i])<=122) { a[i]=(char)(toascii(a[i])-32); } ...

请用c语言编写一个函数fun功能是:计算n门课程的平均分,计算结果作为函 ...
答:float fun(float a[],int n){ int i;float s=0,t;for(i=0;i<n;n++)s=s+a[i];t=s/n;return(t);}

用C语言编程 编写函数fun,该函数的功能是:将M行N列的二维数组中的数据...
答:/*用C语言编程 编写函数fun,该函数的功能是:将M行N列的二维数组中的数据,按列的顺序依次打印出来 */ include <stdio.h> define M 5 define N 5 void Fun(int iaArray[][N]);void main(){ int iaArray[M][N] = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19...

C语言问题 请编写函数fun,其功能是:找出2*M整型二维数组中最大元素的...
答:for(j=0;j<M;j++) // 是数组中最大值 if(a[i][j]>max)max=a[i][j];return max;}int main(void ){ int arr[2][M]={5,8,3,45,76,-4,12,82} ;void NONO (); printf("max =%d\n", fun(arr)) ;return 0;} 望采纳加分,还有不懂可以追问 ...

c语言,编写fun函数用以判断一个数是否为素数,提示:可在函数中设置一个...
答:int fun( int n ){ for( i=2;i<n;i++ ){ if ( n%i ==0 ) //有因数,返回0,不是 return 0;} return 1; //未找到因数,返回1,是 } void main(){ if ( fun(10) == 1 ) //调用函数,根据返回值,判定是否是素数 printf("yes!\n");else printf("no!\n");} ...

C语言问题,请编写函数fun,函数的功能是把字符串中的数字加1
答:include <stdio.h>#include<string.h>void fun(char a[]){int i;for(i=0;i<strlen(a);i++)if(a[i]>='0'&&a[i]<='8') a[i]++;else if(a[i]=='9') a[i]='0';} int main(){ char a[100]; gets(a); fun(a); puts(a); return 0;}/*运行结果...

C语言:编写函数fun计算下面s的值并返回;n由键盘输入并在主函数中输出...
答:/ 计算公式:S=1+1/(1+2)+1/(1+2+3)+1/(1+2+3+...+n)。分析:单项式中分子固定为1 分母为1..n的累和 s为各个单项式累和 / double fun(int n,int i,int sum,double result) { //i>=n时跳出递归 sum+=i;result+=1.0/sum;if(i>=n) { return result;} else { return...