已知每个月份的英文单词如下,要求创建一个指针数组,数组中的每个指针指向一个月份的英文字符串,要求根据输入的月份数字输出相应的英文单词
时间: 2023-05-24 19:05:36 浏览: 151
指针数组创建和初始化的代码如下:
```
char *months[] = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
```
输入月份数字并输出相应英文单词的代码如下:
```
int month;
printf("请输入月份数字:");
scanf("%d", &month);
printf("对应的英文单词为:%s\n", months[month-1]);
```
注意,由于数组下标是从0开始的,而月份数字是从1开始的,因此在输出英文单词时需要将输入的数字减1。
相关问题
已知一个字符数组存储一个字符串,包含空格和单词。请用c语言运用字符指针编写函数,删除其中所有的空格,并输出更新后的字符串。
好的,我可以帮您解决这个问题。以下是函数的代码:
```c
#include<stdio.h>
#include<string.h>
void deleteSpace(char *str){
int i = 0, j = 0;
while(str[i]){
if(str[i] != ' '){
str[j] = str[i];
j++;
}
i++;
}
str[j] = '\0';
}
int main(){
char str[100];
printf("请输入一个字符串:");
fgets(str, 100, stdin);
deleteSpace(str);
printf("更新后的字符串为:%s", str);
return 0;
}
```
该函数名为deleteSpace,接受一个字符指针作为参数,用于操作原始字符串。函数中的变量i和j分别表示遍历原始字符串和更新后的字符串的下标。当原始字符串中的字符不是空格时,将该字符添加到更新后的字符串中,并将更新后字符串的下标j加1。最后,将更新后字符串的最后一位设为'\0',表示字符串的结尾。
在主函数中,我们使用fgets函数从标准输入中读入字符串,将其传递给deleteSpace函数进行操作,最后输出更新后的字符串。
希望能够帮到您!
用c++程序设计,用指针将一个已知字符串a[ ]="computer"第n个字符开始的剩余字符复制到另一个字符数组中b[10]。
可以这样实现:
```cpp
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char a[] = "computer";
char b[10];
int n;
cout << "请输入n:";
cin >> n;
// 获取a中第n个字符开始的剩余字符长度
int len = strlen(a) - n;
// 复制字符串
char *p = a + n;
for (int i = 0; i < len; i++) {
b[i] = *(p + i);
}
// 输出结果
cout << "复制后的字符串为:" << b << endl;
return 0;
}
```
其中,`char *p = a + n` 表示将指针 `p` 指向字符串 `a` 中第 `n` 个字符的地址,然后通过指针 `p` 遍历剩余的字符并复制到数组 `b` 中。注意,数组 `b` 需要预留足够的空间存储复制后的字符串,这里我设置了大小为 `10`。