#include <stdio. h> main() char p[5]=" 1c2d34ee6dcba8" ; int i=0; while(p[i]!=' \0') if(r[i]>='0' .1I p[i]<='9') putchar (p[i+1]); i++;
时间: 2024-03-14 18:45:17 浏览: 17
这段代码中也有几个错误:
1. `main()` 应该是 `main(void)` 或者 `int main()`。
2. `char p[5]` 数组长度应该是 16 而不是 5,以容纳完整的字符串。
3. `if(r[i]>='0' .1I p[i]<='9')` 中的 `r` 应该改为 `p`。
4. `putchar` 函数中应该是 `p[i]` 而不是 `p[i+1]`。
下面是修改后的代码:
```c
#include <stdio.h>
int main(void) {
char p[16] = "1c2d34ee6dcba8";
int i = 0;
while (p[i] != '\0') {
if (p[i] >= '0' && p[i] <= '9') {
putchar(p[i]);
}
i++;
}
return 0;
}
```
这段代码的功能是将字符串 `p` 中的数字字符依次输出。
相关问题
C++编制一个读单词过程,以#include <stdio.h> #include <ctype.h> #include <stdlib.h> #include <string.h> #define NULL 0为开头
C++编写一个读取单词的过程可以以下代码:
```cpp
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
#include <string.h>
#define NULL 0
void readWord(char* word) {
int index = 0;
char ch;
// 跳过空白字符
while ((ch = getchar()) != EOF && isspace(ch));
// 读取单词字符
while (ch != EOF && !isspace(ch)) {
word[index++] = ch;
ch = getchar();
}
// 添加字符串结束符
word[index] = '\0';
}
int main() {
char word[100];
readWord(word);
printf("读取的单词是:%s\n", word);
return 0;
}
```
上述代码中,`readWord`函数用于读取一个单词,它会跳过输入中的空白字符,然后读取连续的非空白字符作为一个单词。`main`函数中调用了`readWord`函数,并打印出读取到的单词。
#include <stdio.h> #include <string.h> char str[]="abcde"; int main() { printf(str[3]); return 0; }
这段代码有一个错误,printf函数的第一个参数应该是一个字符串,而不是一个字符。如果想打印字符串中的某个字符,应该使用以下代码:
```
#include <stdio.h>
#include <string.h>
char str[]="abcde";
int main() {
printf("%c", str[3]);
return 0;
}
```
这样就可以正常打印字符串中的第4个字符 'd' 了。