long fun(char* s) { long r = 0; while (*s != '\0') { r = r * 10 + (*s - '0'); s++; } return r; } int main() { printf("%ld\n", fun("2345210")); return 0; }
时间: 2024-04-20 18:23:21 浏览: 17
根据给定的代码,函数`fun`接受一个字符串作为参数,并将其转换为一个长整型数值。在`main`函数中,调用`fun`函数并将字符串"2345210"作为参数传入,然后将返回的结果打印出来。
具体来说,函数`fun`的工作原理如下:
1. 声明一个长整型变量`r`,初始化为0。
2. 进入一个循环,条件是当前字符不等于字符串的结束符`\0`。
3. 在每次循环中,将`r`乘以10,并将当前字符与字符'0'相减后的结果加到`r`上,这样可以将字符转换为对应的数值。
4. 指针`s`向后移动一位,指向下一个字符。
5. 循环结束后,返回最终的结果`r`。
在这个例子中,字符串"2345210"将被转换为长整型数值2345210,并通过`printf`函数打印出来。输出结果将是2345210。
相关问题
请用编程语言C++,编写一个函数fun,将一个数字字符串转换为一个整数。fu函数原型为long fun(char *p))
好的,以下是C++代码实现:
```cpp
#include <iostream>
#include <string>
using namespace std;
long fun(char *p) {
long num = 0;
while (*p != '\0') {
num = num * 10 + (*p - '0');
p++;
}
return num;
}
int main() {
char numStr[] = "12345";
long num = fun(numStr);
cout << "字符串 " << numStr << " 转换后的整数为 " << num << endl;
return 0;
}
```
在这段代码中,我们定义了一个 `fun` 函数,该函数将一个数字字符串作为参数,并将其转换为一个长整型。我们使用一个 `while` 循环遍历字符串中的每个字符,将其转换为数字并计算出最终的整数值。最后,我们在主函数中调用 `fun` 函数,并输出结果。注意我们使用的是字符指针类型作为参数。
请补充函数fun,该函数的功能是:把一个整数转换成字符串,并倒序保存在字符数组str中。 例如,当n=13572468时,str="86427531"。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。 试题程序:*/ #include <stdlib.h> #include <stdio.h> #define N 80 char str[N]; void fun(long int n) { int i=0; /**********FILL**********/ while( [1] ) { /**********FILL**********/ str[i]= [2] ; n/=10; i++; } /**********FILL**********/ [3] ; } int main() { long int n=13572468; printf("*** the origial data ***\n"); printf("n=%ld",n); fun(n); printf("\n%s",str); return 0; }
#include <stdlib.h>
#include <stdio.h>
#define N 80
char str[N];
void fun(long int n) {
int i=0;
while(n!=0) { // [1] 当n不等于0时循环
str[i]=n%10+'0'; // [2] 将n的个位转换为字符并存入str中
n/=10;
i++;
}
str[i]='\0'; // [3] 在str末尾添加结束符'\0'
}
int main() {
long int n=13572468;
printf("*** the origial data ***\n");
printf("n=%ld",n);
fun(n);
printf("\n%s",str);
return 0;
}