c语言字符串指针去空格,带参数的main函数,strstr中substr出现的次数即子串出现的次数

 两种方法:

复习时演算一遍,无非是将数组的位置替换成指针

//src:有空格的字符串  dst:没有空格的字符串
void str_no_space(char* src, char* dst) {
	int j = 0;
	int i = 0;
	while (src[i] != 0) {
		if (src[i]!=' ') {
			dst[j] = src[i];
			j++;
		}
		i++;
	}
	dst[j] = '\0';
}



int main(void) {
	char str[] = "12  23 45 9687  5";
	char dst[100] = {0};

	str_no_space(str, dst);

	printf("dst=%s\n",dst);

	system("pause");
	return EXIT_SUCCESS;
}

输出:

dst=12234596875

void str_no_space(char* src, char* dst) {

	while (*src != 0) {
		if (*src!=' ') {
			*dst = *src;
			dst++;
		}
		src++;
	}
	*dst = '\0';
}

int main(void) {
	char str[] = "12  23 45 9687  5";
	char dst[100] = { 0 };

	str_no_space(str, dst);

	printf("dst=%s\n", dst);

	system("pause");
	return EXIT_SUCCESS;
}

输出:

dst=12234596875

 带参数的main函数:

无参main函数:int main(void)==int main()

带参数的main函数:int main(inr argc,char *argv[ ]) == int main(int argc,char **argv)

        参数1:表示给main函数传递的参数的总个数。

        参数2:是一个数组,数组的每一个元素都是字符串 char*

int main(int argc, char* argv[]) {
	for (size_t i = 0; i < argc; i++) {
		printf("%s\n",argv[i]);
	}
	system("pause");
	return EXIT_SUCCESS;
}

利用gcc编译器将这个.c文件生成为.exe

例如:gcc hello.c -o hello.exe

并且在cmd中输入exe文件再打出字符,则字符会依次换行输出 

例如:hello.exe 11 22 33 aa bb cc

也可以依照下面的方法直接在VS中操作出,输出字符依次为agrv[1],agrv[2],agrv[3].....

 

 练习str中:

strstr函数:在str中,找到substr出现的位置

strstr(char *str,char *substr)

参数1:原串

参数2:子串

返回值:子串在原串中的位置(地址值);

如果没有NULL

	char* ret = strstr("hellollollollollollo","llo");
	printf("ret=%s\n",ret);

计算出现次数:

int str_times(char*str,char*substr){
	int count = 0;
	char* p = strstr(str, substr);
	while (p != NULL) {
		count++;
		p += strlen(substr);	//p=p+strlen(substr)---->"llollo"
		p = strstr(p, substr);	//返回:"llo"
	}
	return count;
}



int main(void) {
	char str[] = "hellollollo";
	char substr[] = "llo";

	int ret = str_times(str, substr);

	printf("出现%d次\c",ret);

	system("pause");
	return EXIT_SUCCESS;
}

.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值