定义一个字符数组并初始化为"hello world!",编写程序逆序输出此字符数组。 字符数组中的数据前后交换,逆序放置。定义指针
时间: 2024-06-02 08:13:19 浏览: 47
char arr[] = "hello world!";
int len = strlen(arr);
char *p = arr + len - 1;
while (p >= arr) {
printf("%c", *p);
p--;
}
// 输出结果为: !dlrow olleh
相关问题
C++定义一个字符数组并初始化为"hello world!",编写程序逆序输出此字符数组。 字符数组中的数据前后交换,逆序放置。定义指针
来操作数组元素,具体实现代码如下:
```
#include <stdio.h>
#include <string.h>
int main()
{
char str[] = "hello world!";
int len = strlen(str);
char* p = str;
char temp;
// 逆序交换字符
for (int i = 0; i < len / 2; i++) {
temp = *(p + i);
*(p + i) = *(p + len - i - 1);
*(p + len - i - 1) = temp;
}
printf("逆序输出字符数组: %s\n", str);
return 0;
}
```
4.程序设计:输入一个字符串,逆序输出。 要求: (1)利用字符数组初始化字符串。 (2)将字符串逆序保存到另一个字符数组里输出。
你好,谢谢你使用ChitGPT进行对话!针对你的问题,以下是可以实现该要求的程序代码示例:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "Hello, world!"; // 初始化字符串
char reversed[strlen(str) + 1]; // 定义保存逆序后字符串的字符数组
int length = strlen(str); // 获取字符串长度
for(int i = 0; i < length; i++) { // 逆序遍历字符串并保存到新的字符数组
reversed[i] = str[length - i - 1];
}
reversed[length] = '\0'; // 往字符数组最后一个位置加上结束符,形成完整的字符串
printf("原字符串:%s\n", str);
printf("逆序后的字符串:%s\n", reversed); // 输出逆序后的字符串
return 0;
}
```
上述代码通过`char`类型的字符数组来保存字符串,并通过`strlen()`函数获取字符串长度,然后使用`for`循环逆序遍历字符串,并把每个字符保存到另一个字符数组中,最后输出逆序后的字符串。
希望可以帮助你解决问题,如果你还有其他疑问,欢迎继续提问!
阅读全文