C语言题目描述 有时为了将一些数字格式化为指定长度,我们会在数字开头补充前导零。 例如,将数字23格式化成长度为4的数字后,得到0023。(若格式化长度为2,则仍是23) 现在给你一个经过格式化长度后的数字,请你找到原来的数字。 输入 一个字符串,由阿拉伯数字组成,以换行结尾。 输出 输出去除前导零后的数字。
时间: 2023-12-06 19:39:41 浏览: 72
以下是C语言的实现代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
scanf("%s", str);
// 去除前导零
int i, len = strlen(str);
for (i = 0; i < len - 1; i++) {
if (str[i] != '0') {
break;
}
}
printf("%s\n", str + i);
return 0;
}
```
首先,我们读入一个字符串并计算字符串长度。然后,我们遍历字符串中的字符,找到第一个不是 '0' 的字符的位置,并输出该位置到字符串结尾的所有字符。由于 C 语言中字符串是以 null 结尾的,因此我们可以直接输出从该位置开始的字符串。
相关问题
C语言编写程序:有时为了将一些数字格式化为指定长度,我们会在数字开头补充前导零。 例如,将数字23格式化成长度为4的数字后,得到0023。(若格式化长度为2,则仍是23) 现在给你一个经过格式化长度后的数字,请你找到原来的数字。 输入 一个字符串,由阿拉伯数字组成,以换行结尾。 输出 输出去除前导零后的数字。
以下是C语言的程序实现:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int i, len, j;
scanf("%s", str);
len = strlen(str);
j = 0;
for(i = 0; i < len; i++) {
if(str[i] != '0') {
j = i;
break;
}
}
for(i = j; i < len; i++) {
printf("%c", str[i]);
}
printf("\n");
return 0;
}
```
首先,我们定义一个字符数组 `str` 来存储输入的字符串。然后,使用 `strlen` 函数获取字符串的长度。
接下来,在循环中找到第一个不为0的数字的位置,并将其存储在变量 `j` 中。最后,从 `j` 开始循环输出字符串中的数字,即为去除前导零的数字。
注意:在输出结束后需要换行。
有时为了将一些数字格式化为指定长度,我们会在数字开头补充前导零。 例如,将数字23格式化成长度为4的数字后,得到0023。(若格式化长度为2,则仍是23) 现在给你一个经过格式化长度后的数字,请你找到原来的数字。 输入 一个字符串,由阿拉伯数字组成,以换行结尾。 输出 输出去除前导零后的数字。 C语言
可以使用字符串处理函数来解决这个问题。具体步骤如下:
1. 读入一个字符串,表示经过格式化后的数字。
2. 使用strlen函数获取字符串的长度,记为n。
3. 从字符串的第一个字符开始循环,检查每个字符是否为'0'。
4. 如果当前字符是'0',则将当前字符向后移动一位,即将字符串的第i+1个字符赋值给第i个字符。
5. 如果当前字符不是'0',则跳出循环。
6. 将字符串从第i个字符开始截取,长度为n-i,即得到原来的数字字符串。
7. 将数字字符串转换为整数后输出。
以下是示例代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
scanf("%s", str);
int n = strlen(str);
int i;
for (i = 0; i < n; i++) {
if (str[i] != '0') {
break;
}
}
printf("%d\n", atoi(str + i));
return 0;
}
```
阅读全文