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;
}
相关文章
|
15天前
|
存储 编译器 C语言
【数据结构】C语言实现链队列(附完整运行代码)
【数据结构】C语言实现链队列(附完整运行代码)
32 0
|
15天前
|
存储 算法 程序员
【数据结构】C语言实现顺序表万字详解(附完整运行代码)
【数据结构】C语言实现顺序表万字详解(附完整运行代码)
35 0
|
16天前
|
算法 C语言 C++
【C语言实战项目】三子棋游戏
【C语言实战项目】三子棋游戏
30 1
|
16天前
|
程序员 C语言
【C语言实战项目】猜数字游戏
【C语言实战项目】猜数字游戏
21 0
【C语言实战项目】猜数字游戏
|
20天前
|
人工智能 监控 算法
java智慧城管源码 AI视频智能分析 可直接上项目
Java智慧城管源码实现AI视频智能分析,适用于直接部署项目。系统运用互联网、大数据、云计算和AI提升城市管理水平,采用“一级监督、二级指挥、四级联动”模式。功能涵盖AI智能检测(如占道广告、垃圾处理等)、执法办案、视频分析、统计分析及队伍管理等多个模块,利用深度学习优化城市管理自动化和智能化,提供决策支持。
132 4
java智慧城管源码 AI视频智能分析 可直接上项目
|
6天前
|
人工智能 前端开发 JavaScript
我们团队来了一位新同事,主动要求帮忙敲代码!欢迎 AI 001号
这位新同事不一般!下载量已经超过200万,每天生产的代码,有数百万行被程序员采纳,已经成长为中国目前最受欢迎的AI编程工具。
|
15天前
|
程序员 C语言
【C语言实战项目】通讯录(动态增容版)
【C语言实战项目】通讯录(动态增容版)
19 0
|
16天前
|
编译器 定位技术 C语言
【C语言实战项目】扫雷游戏
【C语言实战项目】扫雷游戏
25 0
|
19天前
|
机器学习/深度学习 人工智能 自然语言处理
大模型落地实战指南:从选择到训练,深度解析显卡选型、模型训练技、模型选择巧及AI未来展望---打造AI应用新篇章
大模型落地实战指南:从选择到训练,深度解析显卡选型、模型训练技、模型选择巧及AI未来展望---打造AI应用新篇章
大模型落地实战指南:从选择到训练,深度解析显卡选型、模型训练技、模型选择巧及AI未来展望---打造AI应用新篇章
|
21天前
|
存储 机器学习/深度学习 算法
C语言代码实现数据结构与算法
以上代码中,哈希表使用链表解决哈希冲突,每个链表节点包含一个键值对。hash函数用于计算键值对应的哈希值,insert函数用于向哈希表中插入一个键值对,若当前位置为空,则直接插入;否则,将新节点插入到链表末尾。search函数用于在哈希表中查找指定键值的值,若存在则返回其值,否则返回-1。
32 1