请补充函数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; }
时间: 2023-08-20 21:04:46 浏览: 127
#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;
}
相关问题
请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串"-1234",则函数把它转换为整数值 -1234。函数fun中给出的语句仅供参考。
```
#include <stdio.h>
int fun(char* str) {
int result = 0;
int sign = 1;
int i = 0;
if (str[i] == '-') {
sign = -1;
i++;
}
while (str[i] != '\0') {
result = result * 10 + (str[i] - '0');
i++;
}
return sign * result;
}
int main() {
char str[] = "-1234";
int result = fun(str);
printf("%d\n", result);
return 0;
}
```
请编写一个函数fun,它的功能是:将一个表示正整数的数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。
以下是一个可能的实现,基本思路是将每个字符转换为对应的数字并累加,需要注意的是要处理字符串中可能存在的非数字字符:
```c
int fun(char* str) {
int res = 0;
while (*str != '\0') {
if (*str < '0' || *str > '9') {
return -1; // 非数字字符,返回错误码
}
res = res * 10 + (*str - '0');
str++;
}
return res;
}
```
使用时,可以将一个数字字符串作为参数传入该函数,例如:
```c
char num_str[] = "12345";
int num = fun(num_str);
printf("%d\n", num); // 输出 12345
```
需要注意的是,如果字符串中包含非数字字符,该函数会返回 -1,因此需要在使用时进行错误处理。
阅读全文