C语言去除前导零且输入000,输出0
时间: 2024-06-09 13:08:29 浏览: 70
可以使用以下代码实现:
```
#include <stdio.h>
#include <string.h>
int main() {
char num[10];
int i, len, index = 0;
scanf("%s", num);
len = strlen(num);
// 找到第一个非零数字的位置
for (i = 0; i < len; i++) {
if (num[i] != '0') {
index = i;
break;
}
}
// 如果数字全是0,输出0
if (index == len - 1 && num[index] == '0') {
printf("0");
} else {
// 输出非零数字及其后面的数字
for (i = index; i < len; i++) {
printf("%c", num[i]);
}
}
return 0;
}
```
这个程序首先读取一个字符串表示的数字,然后在字符串中找到第一个非零数字的位置。如果整个字符串都是0,则输出0;否则输出从第一个非零数字开始到字符串结尾的所有字符。
相关问题
c语言字符串的输出和输入
在C语言中,字符串通常作为字符数组处理。对于字符串的输出,我们可以直接打印字符数组,或者通过循环逐个打印每个字符。例如:
```c
#include <stdio.h>
#define MAX_LEN 100
int main() {
char str[MAX_LEN];
printf("请输入一个字符串: ");
fgets(str, MAX_LEN, stdin); // 使用fgets获取用户输入,包括空格
str[strlen(str) - 1] = '\0'; // 去掉末尾的换行符
printf("你输入的字符串是: %s\n", str);
return 0;
}
```
这里`printf`用于输出字符串,`fgets`用于从标准输入获取输入字符串,并确保以空格结束。
至于字符串的输入,同样使用`fgets`函数,它可以从用户那里接收一串字符,直到遇到换行符为止。
```c
scanf("%s", str); // 直接使用scanf接收输入的字符串,但这会忽略前导空白,所以一般推荐使用fgets
```
现在给你一个经过格式化长度后的数字,请你找到原来的数字。 输入 一个字符串,由阿拉伯数字组成,以换行结尾。 输出 输出去除前导零后的数字。用c语言编写
以下是一个示例 C 语言程序,可以实现你所需的功能:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int len, i;
// 读入字符串
scanf("%s", str);
// 计算字符串长度
len = strlen(str);
// 去除前导零
for (i = 0; i < len; i++) {
if (str[i] != '0') {
break;
}
}
// 输出结果
printf("%s\n", str + i);
return 0;
}
```
程序使用 `scanf()` 函数读入一个字符串,然后使用 `strlen()` 函数计算字符串长度。接下来,程序使用一个循环找到第一个非零字符的位置,然后输出该位置之后的字符串(即去除前导零后的数字)。最后,程序返回 0 表示正常结束。