2022081班李亚楠20220902

发布于:2022-12-31 ⋅ 阅读:(500) ⋅ 点赞:(0)

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 后查看

网站公告

今日签到

点亮在社区的每一天
去签到