C语言实战项目(AI代码)

简介: C语言实战项目(AI代码)

是的,你没有听错,用C语言编写一个简单的AI代码,功能十分简单,仅供娱乐,重要的是其中有几个实用性较强的自定义函数

废话不多说,先上代码

#include <stdio.h>
#include <string.h>
//转换大小写
void RemoveLetter(char* str);
//删除多余空格
void RemoveSpace(char* str);
//疑问词转换
void TurnInterrogativewords(char* str);
//问号转成感叹号
void TurnSymbol(char* str);
//第一人称改第二人称
void TurnFirstperson(char* str);
void RemoveLetter(char* str)
{
  for (int i = 0; str[i] != '\0'; i++)
  {
    if (str[i] >= 'A' && str[i] <= 'Z' && str[i] != 'I')
    {
      str[i] += 32;
    }
  }
}
void RemoveSpace(char* str)
{
  char* p = str;
  int i = 0;
  while (*p)
  {
    if (str[0] == ' ')
      p++;
    if ((*(p + 1) < 'a' || *(p + 1) > 'z') && (*(p + 1) < 'A' || *(p + 1) > 'Z') && (*(p + 1) < '0' || *(p + 1) > '9'))
    {
      if (*p == ' ')
        p++;
    }
    if (*(p + 1) == '\0' && *p == ' ')
      break;
    str[i++] = *p;
    if (*p == ' ')
    {
      int count = 0;
      int j = 0;
      for (j = 0;; j++)
      {
        if (*(p + j) == ' ')
          count++;
        else break;
      }
      p += count - 1;
    }
    p++;
  }
  str[i] = '\0';
}
void TurnInterrogativewords(char* str)
{
  char* p = str;
  int k = 0;
  while (*p)
  {
    str[k++] = *p;
    if ((*p == 'c' || *p == 'C') && (*(p - 1) == ' ' || (*(p - 1) < 'a' || *(p - 1) > 'z') && (*(p - 1) < 'A' || *(p - 1) > 'Z') && (*(p - 1) < '0' || *(p - 1) > '9')))
    {
      if (*(p + 1) == 'a' && *(p + 2) == 'n' && *(p + 3) == ' ' && *(p + 4) == 'y' && *(p + 5) == 'o' && *(p + 6) == 'u' && (*(p + 7) == ' ' || (*(p + 7) < 'a' || *(p + 7) > 'z') && (*(p + 7) < 'A' || *(p + 7) > 'Z') && (*(p + 7) < '0' || *(p + 7) > '9')))
      {
        char ch1[] = "I can  ";
        int i = 0;
        for (i = 0; ch1[i] != '\0'; i++)
        {
          *(p + i) = ch1[i];
        }
      }
      if (*(p + 1) == 'o' && *(p + 2) == 'u' && *(p + 3) == 'l' && *(p + 4) == 'd' && *(p + 5) == ' ' && *(p + 6) == 'y' && *(p + 7) == 'o' && *(p + 8) == 'u' && (*(p + 9) == ' ' || (*(p + 9) < 'a' || *(p + 9) > 'z') && (*(p + 9) < 'A' || *(p + 9) > 'Z') && (*(p + 9) < '0' || *(p + 9) > '9')))
      {
        char ch2[] = "I could  ";
        int i = 0;
        for (i = 0; ch2[i] != '\0'; i++)
        {
          *(p + i) = ch2[i];
        }
      }
    }
    p++;
  }
  str[k] = '\0';
}
void TurnSymbol(char* str)
{
  char* p = str;
  int i = 0;
  while (*p)
  {
    if (*p == '?')
      *p = '!';
    str[i++] = *p;
    p++;
  }
  str[i] = '\0';
}
void TurnFirstperson(char* str)
{
  char* p = str;
  int j = 0;
  while (*p)
  {
    char ch[] = "you";
    if (*p == 'I' && ((*(p + 1) < 'A' || *(p + 1) > 'Z') && (*(p + 1) < 'a' || *(p + 1) > 'z') || *(p + 1) == ' '))
    {
      char str1[1000];
      for (int i = 0; ; i++)
      {
        str1[i] = *(p + 1 + i);
        if (*(p + 1 + i) == '\0')
          break;
      }
      for (int i = 0; ch[i] != '\0'; i++)
      {
        *(p + i) = ch[i];
      }
      for (int i = 0; ; i++)
      {
        *(p + 3 + i) = str1[i];
        if (str1[i] == '\0')
          break;
      }
    }
    if (*p == 'm' && *(p + 1) == 'e' && ((*(p + 2) < 'A' || *(p + 2) > 'Z') && (*(p + 2) < 'a' || *(p + 2) > 'z') && (*(p - 1) < 'A' || *(p - 1) > 'Z') && (*(p - 1) < 'a' || *(p - 1) > 'z') || (*(p + 2) == ' ' && *(p - 1) == ' ')))
    {
      char str2[1000];
      for (int i = 0; ; i++)
      {
        str2[i] = *(p + 2 + i);
        if (*(p + 1 + i) == '\0')
          break;
      }
      for (int i = 0; ch[i] != '\0'; i++)
      {
        *(p + i) = ch[i];
      }
      for (int i = 0; ; i++)
      {
        *(p + 3 + i) = str2[i];
        if (str2[i] == '\0')
          break;
      }
    }
    str[j++] = *p;
    p++;
  }
  str[j] = '\0';
}
int main()
{
  char chat[1000];
  char str[1000];
  getchar();
  while (1)
  {
    gets(chat);
    strcpy(str, chat);
    printf("%s\n", str);
    RemoveSpace(str);
    TurnFirstperson(str);
    TurnInterrogativewords(str);
    TurnSymbol(str);
    RemoveSpace(str);
    RemoveLetter(str);
    printf("AI: %s\n", str);
  }
  return 0;
}
相关文章
|
23天前
|
存储 人工智能 分布式计算
Parquet 文件格式详解与实战 | AI应用开发
Parquet 是一种列式存储文件格式,专为大规模数据处理设计,广泛应用于 Hadoop 生态系统及其他大数据平台。本文介绍 Parquet 的特点和作用,并演示如何在 Python 中使用 Pandas 库生成和读取 Parquet 文件,包括环境准备、生成和读取文件的具体步骤。【10月更文挑战第13天】
175 60
|
23天前
|
人工智能 开发者
|
7天前
|
C语言 Windows
C语言课设项目之2048游戏源码
C语言课设项目之2048游戏源码,可作为课程设计项目参考,代码有详细的注释,另外编译可运行文件也已经打包,windows电脑双击即可运行效果
19 1
|
9天前
|
机器学习/深度学习 数据采集 人工智能
揭秘AI:机器学习的魔法与代码
【10月更文挑战第33天】本文将带你走进AI的世界,了解机器学习的原理和应用。我们将通过Python代码示例,展示如何实现一个简单的线性回归模型。无论你是AI新手还是有经验的开发者,这篇文章都会给你带来新的启示。让我们一起探索AI的奥秘吧!
|
1月前
|
人工智能 IDE Java
AI 代码工具大揭秘:提高编程效率的必备神器!
【10月更文挑战第1天】近年来,人工智能得到了迅猛的发展,并在各行各业都得到了广泛应用。尤其是近两年来,AI开发工具逐渐成为开发者们的新宠,其中 GitHub Copilot 更是引发了无限可能性的探索。
96 9
AI 代码工具大揭秘:提高编程效率的必备神器!
|
11天前
|
存储 人工智能 文字识别
AI与OCR:数字档案馆图像扫描与文字识别技术实现与项目案例
本文介绍了纸质档案数字化的技术流程,包括高精度扫描、图像预处理、自动边界检测与切割、文字与图片分离抽取、档案识别与文本提取,以及识别结果的自动保存。通过去噪、增强对比度、校正倾斜等预处理技术,提高图像质量,确保OCR识别的准确性。平台还支持多字体识别、批量处理和结构化存储,实现了高效、准确的档案数字化。具体应用案例显示,该技术在江西省某地质资料档案馆中显著提升了档案管理的效率和质量。
|
18天前
|
人工智能 安全 网络安全
揭秘!大模型私有化部署的全方位安全攻略与优化秘籍,让你的AI项目稳如磐石,数据安全无忧!
【10月更文挑战第24天】本文探讨了大模型私有化部署的安全性考量与优化策略,涵盖数据安全、防火墙配置、性能优化、容器化部署、模型更新和数据备份等方面,提供了实用的示例代码,旨在为企业提供全面的技术参考。
54 6
|
27天前
|
人工智能
|
21天前
|
人工智能 机器人 API
【通义】AI视界|谷歌Q3财报:Gemini API六个月增长14倍,公司超25%的新代码由AI生成
本文内容由通义自动生成,涵盖谷歌Q3财报、马斯克xAI融资、九巨头联盟挑战英伟达、Meta加大AI投入及麻省理工研究LLM与人脑相似性等热点资讯。更多精彩内容,请访问通通知道。
|
22天前
|
人工智能 资源调度 数据可视化
【AI应用落地实战】智能文档处理本地部署——可视化文档解析前端TextIn ParseX实践
2024长沙·中国1024程序员节以“智能应用新生态”为主题,吸引了众多技术大咖。合合信息展示了“智能文档处理百宝箱”的三大工具:可视化文档解析前端TextIn ParseX、向量化acge-embedding模型和文档解析测评工具markdown_tester,助力智能文档处理与知识管理。