const char *st[]={'Hello","world","!"}, **p=st; p++; printf("%s-%c\n",*P, **p); ( *p)++; printf("%s- %c-%c\n", *p,**p,(**p)+1);输出结果是什么
时间: 2023-10-21 22:10:59 浏览: 108
这段代码存在语法错误,应该使用双引号而不是单引号来表示字符串常量。此外,printf函数的格式字符串中的中文字符“-”也应该使用英文字符“-”代替。
修正后的代码如下:
```c
const char *st[] = {"Hello", "world", "!"};
const char **p = st;
p++;
printf("%s-%c\n", *p, **p);
(*p)++;
printf("%s-%c-%c\n", *p, **p, (**p)+1);
```
输出结果为:
```
world-o
orld-p-p
```
解释:
- `p++` 操作将 `p` 指向数组 `st` 的第二个元素 `"world"`。
- `*p` 即为指向字符串 `"world"` 的指针,所以第一个 `printf` 输出为 `world-o`。其中,`**p` 取到的是字符串 `"world"` 的第一个字符 `'w'`。
- `(*p)++` 操作将指针 `*p` 指向字符串 `"world"` 的下一个字符 `'o'`,因此第二个 `printf` 输出为 `"orld-p-p"`。其中,`**p` 仍然是指向字符串 `"world"` 的第一个字符 `'w'`,而 `(**p)+1` 则是 `'x'`,即字符 `'w'` 的下一个字符。
相关问题
#include <stdio.h> void change(char *str) { char *ptr = str; while (*ptr != '\0') { if(*ptr>='a'&&*ptr<="z") { *ptr += 'A'-'a'; } ptr++; } } int main(int argc, char const *argv[]) { char str[]="Hello,World!"; change(str); printf("%s",str); return 0; }修改这段代码
这段代码有一个错误,如果要将小写字母转换为大写字母,应该使用 `'A'-'a'` 而不是 `'a'-'A'`。修改后的代码如下:
```c
#include <stdio.h>
void change(char *str) {
char *ptr = str;
while (*ptr != '\0')
{
if(*ptr>='a'&&*ptr<='z')
{
*ptr += 'A'-'a';
}
ptr++;
}
}
int main(int argc, char const *argv[]) {
char str[]="Hello,World!";
change(str);
printf("%s",str);
return 0;
}
```
这样修改后,如果字符串中有小写字母,会被转换为大写字母,然后输出 "HELLO,WORLD!"。
解释#include <stdio.h>void mystrcat(char *s1, const char *s2) { while (*s1) { // 找到s1的结尾 s1++; } while (*s2) { // 将s2中的字符添加到s1的末尾 *s1 = *s2; s1++; s2++; } *s1 = '\0'; // 添加字符串结尾标志}int main() { char s1[20] = "Hello, "; char s2[] = "world!"; mystrcat(s1, s2); printf("%s\n", s1); // 输出Hello, world! return 0;}
这段代码定义了一个函数 `mystrcat` 和主函数 `main`。
函数 `mystrcat` 的作用是将字符串 `s2` 添加到字符串 `s1` 的末尾。它使用了两个指针 `s1` 和 `s2`,`s1` 指向字符串 `s1` 的结尾,`s2` 指向字符串 `s2` 的第一个字符。然后,它遍历字符串 `s2` 中的每个字符,将它们添加到 `s1` 的末尾,并且指针 `s1` 和 `s2` 分别向后移动一个位置。最后,函数 `mystrcat` 在 `s1` 的末尾添加了字符串结尾标志 `'\0'`。
主函数 `main` 定义了两个字符串 `s1` 和 `s2`,并将字符串 `s2` 添加到字符串 `s1` 的末尾。然后,它使用 `printf` 函数输出合并后的字符串 `s1`。最后,它返回 0,表示程序正常结束。
相关推荐
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)