鱼C论坛

 找回密码
 立即注册
查看: 1851|回复: 11

[已解决]这个代码运行不了,有人知道是为什么吗?

[复制链接]
发表于 2022-5-25 15:05:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>
char *getWord(char);
char *getword(char c)
{
    switch (c)
    {
    case 'A':
        return "Apple";
    case 'B':
        return "Banana";
    case 'C':
        return "Cat";
    case 'D':
        return "Dog";
    default:
        return "None";
    }
}
int main()
{
    char input;
    printf("请输入一个字母:");
    scanf("%c", &input);
    printf("%s\n", getWord(input));
}
最佳答案
2022-5-25 15:33:03
printf("%s\n", getword(input));
uTools_1653462228084.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-5-25 15:09:23 From FishC Mobile | 显示全部楼层
函数返回的是 char* 指针,请问你返回的是什么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-25 15:18:29 | 显示全部楼层
傻眼貓咪 发表于 2022-5-25 15:09
函数返回的是 char* 指针,请问你返回的是什么?

我返回的也是char类型的指针啊,字符串不就是指向char类型的指针吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-25 15:19:31 | 显示全部楼层
我是完全照抄小甲鱼的,我不知道为什么不行
uTools_1653463139640.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-25 15:20:22 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-25 15:26:41 | 显示全部楼层
傻眼貓咪 发表于 2022-5-25 15:09
函数返回的是 char* 指针,请问你返回的是什么?

原来这玩意还能这样用啊
#include <stdio.h>

char* test(int a)
{
    if (a%2)  return "我是奇数!";
    else return "我是偶数";
}

int main()
{
 
    printf("%s\n",test(55));
    printf("%s\n",test(88));
    return 0;        
}

/*
PS D:\wp> ./ct8
我是奇数!
我是偶数
PS D:\wp> 
*/
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-25 15:33:03 | 显示全部楼层    本楼为最佳答案   
printf("%s\n", getword(input));
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-25 15:33:13 From FishC Mobile | 显示全部楼层
1613551 发表于 2022-5-25 15:18
我返回的也是char类型的指针啊,字符串不就是指向char类型的指针吗

看漏了,抱歉。你的代码W 大写写成小写了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-25 15:36:05 | 显示全部楼层
#include <stdio.h>

char *getword(char c)
{
    switch (c)
    {
    case 'A':
        return "Apple";
    case 'B':
        return "Banana";
    case 'C':
        return "Cat";
    case 'D':
        return "Dog";
    default:
        return "None";
    }
}
int main()
{
    char input;
    printf("请输入一个字母:");
    scanf("%c", &input);
    printf("%s\n", getword(input));
}

/*
PS D:\wp> ./ct8
请输入一个字母:A
Apple
PS D:\wp> ./ct8
请输入一个字母:B
Banana
PS D:\wp> ./ct8
请输入一个字母:C
Cat
PS D:\wp> ./ct8
请输入一个字母:D
Dog
PS D:\wp> 
*/

程序没问题,就是你的两个GETWORD 拼写不一致,导致没有链接成功exe  所以会出现你图片中的0.exe没有找到的提示
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-25 15:36:19 From FishC Mobile | 显示全部楼层
wp231957 发表于 2022-5-25 15:26
原来这玩意还能这样用啊

没错,C 语言就是玩指针,一堆题目如:链表、二叉树等,就是把指针玩遍。想到 Python 要写二叉树,因为没有指针特性,会吐。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-25 15:36:28 | 显示全部楼层
本帖最后由 jhq999 于 2022-5-25 15:41 编辑

转自csdn
一旦有字符串常量在运行期间创建,就会在内存中一直保持到程序结束,当使用相同的字符串常量的时候,不会再创建字符串常量,而是指向之前的那个。因此字符串常量是贯穿整个程序的生命周期的。
char *s0="hello";
void a()
{
  char *s1="hello";
  printf("%0x\n",s1);
  s1="world";
}
void b()
{
   char *s2="hello";
   printf("%0x\n",s2);
   s2="world";
}
int main()
{
 char *s3=(char *)0;
 printf("%0x\n",s0);
 a();
 b();
 s3="hello";
 printf("%0x\n",s3);
 return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-25 17:48:38 | 显示全部楼层
配置环境问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-6 00:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表