算法实现c语言--03
- 实现 mystrcpy(), mystrcmp(), mystrcat(), mystrlen() ;
#include<stdio.h>
#include<stdlib.h> int mystrlen(char *c)
{
int i=;
while (c[i]!='\0')i++;
return i;
}
int mystrcmp(char *c1,char *c2)
{
int i = , j = ;
for (; c1[i] != '\0'&&c2[i] != '\0'; i++)
{
if (c1[i] < c2[i])return -;
else if (c1[i] == c2[i])continue;
else return ;
}
return ;
}
char* mystrcopy(char *c1, char *c2)
{
int i = , j = ; while (c2[j] != '\0')c1[i++] = c2[j++]; c1[i] = '\0';
return c1;
}
char* mystrcat(char *c1, char *c2)
{ int i = , j = ;
while (c1[i] != '\0')i++; while(c2[j] != '\0')c1[i++] = c2[j++]; c1[i] = '\0';
return c1;
}
int main()
{
char c1[] = "hello ", c2[] = "woel";
printf("%d\n",mystrlen(c1));
printf("%d\n", mystrcmp(c1, c2));
mystrcat(c1, c2);
printf("%s\n", c1);
mystrcopy(c1, c2);
printf("%s\n", c1); system("pause");
return ;
}2.输入一行字符串(单词和若干空格), 输出该行单词个数。
Input:____hello_________world_ how___are___you___\n
Output: 5
#include<stdio.h>
#include<stdlib.h> int fun(char *c)
{
int i = ,cnt=;
while (c[i] != '\0')
{
if (c[i] == ' ')
{
i++;
if (c[i] != ' ')cnt++;
}
else i++; }
return cnt;
} int main()
{
char c1[] = "hello world how are you ";
puts(c1);
printf("%d",fun(c1)); system("pause");
return ;
}
3.输入一行字符串(单词和若干空格),输出该行单词(每个单词一行)
Input:____hello_________world_ how___are___you___\n
Output: hello
world
how
are
You
#include<stdio.h>
#include<stdlib.h> void fun(char *c)
{
int i = ,cnt=;
while (c[i] != '\0')
{
if (c[i] == ' ')
{
i++;
continue;
}
if (c[i] != ' ')
{
printf("%c", c[i]);
i++;
if (c[i] == ' ')printf("\n");
} }
} int main()
{
char c1[] = "hello world how are you ";
puts(c1);
fun(c1); system("pause");
return ;
}
4.输入一行字符串,把字符串翻转 。
Input: I____am__a__student
Output: student__a__am____I
1、直接翻转一下
2、把每个单词找出来,原地自身翻转
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void fun1(char *c)
{
int i = strlen(c) - 1;
while (i >= 0)
{
printf("%c", c[i]);
i--;
}
//printf("\n");
}
void strcut(char *s, char *sub) //用参数sub来保存结果,所以函数不用返回值了
{
int i=0, j = 0, k = 0;
for (i = strlen(s)-1; i >=0 ; i--)
{
//printf("%c", s[i]);
if (s[i] != ' ')
{
sub[j++] = s[i];
if (s[i-1] == ' '||i==0)
{
sub[j] = '\0';
fun1(sub); printf(" ");
j = 0;
}
}
}
}
int main()
{
char c1[] = "hello world how are you ";
puts(c1);
fun1(c1);
printf("\n");
char ps[100]; //用来保存截取子串的必须是数组,不能是指针
static char s[] = "hello world how are you ";
strcut(s, ps);
//printf("%s\n", ps);
system("pause");
return 0;
}
算法实现c语言--03的更多相关文章
- 【最全】经典排序算法(C语言)
算法复杂度比较: 算法分类 一.直接插入排序 一个插入排序是另一种简单排序,它的思路是:每次从未排好的序列中选出第一个元素插入到已排好的序列中. 它的算法步骤可以大致归纳如下: 从未排好的序列中拿出首 ...
- 魔方阵算法及C语言实现
1 魔方阵概念 填充的,每一行.每一列.对角线之和均相等的方阵,阶数n = 3,4,5….魔方阵也称为幻方阵. 例如三阶魔方阵为: 魔方阵有什么的规律呢? 魔方阵分为奇幻方和偶幻方.而偶幻方又分为是4 ...
- 一个UUID生成算法的C语言实现 --- WIN32版本 .
一个UUID生成算法的C语言实现——WIN32版本 cheungmine 2007-9-16 根据定义,UUID(Universally Unique IDentifier,也称GUID)在时 ...
- 无限大整数相加算法的C语言源代码
忙里偷闲,终于完成了无限大整数相加算法的C语言代码,无限大整数相加算法的算法分析在这里. 500位的加法运行1000次,不打印结果的情况下耗时0.036秒,打印结果的情况下耗时16.285秒. 下面是 ...
- 数据结构算法集---C++语言实现
//数据结构算法集---C++语言实现 //各种类都使用模版设计,可以对各种数据类型操作(整形,字符,浮点) /////////////////////////// // // // 堆栈数据结构 s ...
- 1164: 零起点学算法71——C语言合法标识符(存在问题)
1164: 零起点学算法71——C语言合法标识符 Time Limit: 1 Sec Memory Limit: 64 MB 64bit IO Format: %lldSubmitted: 10 ...
- PID算法(c 语言)(转)
PID算法(c 语言)(来自老外) #include <stdio.h> #include<math.h> //定义PID 的结构体 struct _pid { int pv; ...
- 一个UUID生成算法的C语言实现——WIN32版本
源: 一个UUID生成算法的C语言实现——WIN32版本
- 排序算法总结(C语言版)
排序算法总结(C语言版) 1. 插入排序 1.1 直接插入排序 1.2 Shell排序 2. 交换排序 2.1 冒泡排序 2.2 快速排序 3. 选择 ...
随机推荐
- Rebuild account Windows 10 in Domain
cmd ‘administrator’Regedit 1. Check User Profiles HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\C ...
- MIDI制作的相关软件
Native Instruments Kontakt(音乐采样器) fl studio 12 v12.5.0.59 汉化版水果 http://xiazai.flstudiochina.com/wm ...
- vscode 插件安装以及首选项配置
1.插件 Auto Close Tag Path Intellisense Prettier Vetur vscode-icons Bracket Pair Colorizer 2.vscode 首选 ...
- CloudStack管理VMware遇到的问题
话说前段安装了CloudStack并使用它来管理XenServer,这回要用它来管理VMware.虽说之前遇到了大大小小的问题都攻克了,但在VMware这一块还是遇到了一些麻烦. 在创建资源域.加入集 ...
- nightwatch testing 注意事项
coding style 好的測試項目應該盡量不要使用pause 並且要有驗證的機制 .click('input.btn') //.pause(3000) .waitForElementVisible ...
- 如何学习Java?
一点感悟 java作为一门编程语言,在各类编程语言中作为弄潮儿始终排在前三的位置,这充分肯定了java语言的魅力,在实际项目应用中,我们已经无法脱离javaa(Ps当然你可以选择不使用),但它的高性能 ...
- VMware安装ubuntu学习笔记(只是笔记)
VMware安装ubuntu开机黑屏/死机 1- Edit Ubuntu VM Configuration file (.vmx) 2- Add the following line cpuid.1. ...
- iOS中从零開始使用protobuf
让我们一起打开以下这个链接 https://github.com/alexeyxo/protobuf-objc 在github上有protobuf-objc,当中的readme能够教会我们安装prot ...
- 开源安卓Android流媒体音视频播放器实现声音自动停止、恢复、一键静音功能源码
本文转自EasyDarwin团队John的博客:http://blog.csdn.net/jyt0551/article/details/60802145 我们在开发安卓Android流媒体音视频播放 ...
- Spring mvc接受集合类型参数的方法
public String xxxxx(String xxxx, String xxxxx, @RequestParam("parameterList[]") List<St ...