1、从终端中输入一串字符,求出空格的个数; ab_cd_e_\n --->遇到\n表示输入结束
---->数组中存储ab_cd_e ----->求出空格个数
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
/*********从字符串中求空格个数**********/
int i = 0;
int count = 0;
char a[20] = "";
gets(a);
puts(a);
for(i = 0; i < ((int)strlen(a)); i++) // 遍历数组a
{
if(' ' == a[i])
{
count++; // 空格计数+1
}
}
printf("空格个数为:%d\n", count);
return 0;
}
2、删除字符串中的空格,要求只用一个数组 “aa_b_cc” --->结果 “aabcc”
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
/****************删除字符串中的空格******************/
int i = 0;
int j = 0;
char a[] = "aa b cc";
printf("strlen = %ld\n", strlen(a));
for(i = 0; i < strlen(a); i++) // 遍历数组a
{
if(' ' == a[i])
{
for(j = i; j < strlen(a); j++) // 从当前元素开始,遍历数组a
{
a[j] = a[j+1]; // 元素前移一位
}
}
}
puts(a);
return 0;
}
3、完成strcmp和strcat函数,再独立完成strlen和strcpy函数
#include <stdio.h>
int main(int argc, const char *argv[])
{
/**************strcmp源码实现*****************/
int i = 0;
int j = 0;
char a[20] = "hello";
char c[7] = "world!";
// 字符数组a元素未结束,且a和c元素相同时,循环
while(('\0' != a[i]) && (a[i] == c[i]))
{
i++; // a和c相同时:表示结尾元素下标;不同时:表示该不同元素下标
}
// 打印两元素的ascii码差值,为零:两数组相同;非零:两数组不同
printf("%d\n", (a[i] - c[i]));
return 0;
}
#include <stdio.h>
int main(int argc, const char *argv[])
{
/*************strcat源码实现****************/
int i = 0;
int j = 0;
char a[20] = "hello";
char c[7] = "world!";
while('\0' != a[i]) // 循环,直到字符数组a结尾
{
i++; // 记录字符数组a结尾元素的下标
}
while('\0' != c[j]) // 循环,直到字符数组c结束
{
a[i] = c[j]; // 从a结尾开始,将c中的元素逐个赋到a中
i++;
j++;
}
a[i] = '\0'; // 防止a内存越界
puts(a);
putchar(10);
return 0;
}
#include <stdio.h>
int main(int argc, const char *argv[])
{
/***************strlen源码实现******************/
int i = 0;
char a[20] = "hello";
while('\0' != a[i]) // 循环,直到字符串结束
{
i++; // 字符个数+1
}
printf("len = %d\n", i);
return 0;
}
#include <stdio.h>
int main(int argc, const char *argv[])
{
/*************strcpy源码实现***************/
int i = 0;
char a[20] = "hello";
char b[30] = " ";
while('\0' != a[i]) //循环,直到字符数组a结束
{
b[i] = a[i]; // a的元素复制到b
i++;
}
b[i] = '\0'; // 字符数组b结尾加上\0,防止内存越界
puts(b);
putchar(10);
return 0;
}
本文含有隐藏内容,请 开通VIP 后查看