C语言 01字串

问题描述
对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:
00000
00001
00010
00011
00100
请按从小到大的顺序输出这32种01串。

#include<stdio.h>
int main(){
	int a,b,c,d,e,i;
	for(i=0;i<100000;i++)
	{a=i/10000;
	b=i%10000/1000;
	c=i%1000/100;
	d=i%100/10;
	e=i%10;
	if((a==1||a==0)&&(b==1||b==0)&&(c==1||c==0)&&(d==1||d==0)&&(e==1||e==0))
	{
	if(i>=0&&i<10)
	printf("0000%d\n",i);
	else if(i>=10&&i<100)printf("000%d\n",i);
	else if(i>=100&&i<1000)printf("00%d\n",i);
	else if(i>=1000&&i<10000)printf("0%d\n",i);
	else if(i>=10000&&i<100000)printf("%d\n",i);
	}}
	return 0;
}
C语言中,要找到子串在母串中首次出现的位置,通常可以使用`strchr()`函数或`strstr()`函数配合循环来完成。这里分别解释两个情况: **1. 图一:在母串中第pos个位置定位子串的算法(使用`strchr()`函数)** 这个过程适用于查找从特定索引开始的某个字符在字符串中的位置。例如,如果你想查找从索引`pos`开始的`char target_char`是否出现在`char str[]`中,可以这样做: ```c #include <string.h> size_t find_char_at_pos(char* str, char target_char, size_t pos) { if (str[pos] == target_char || pos >= strlen(str)) { // 如果目标字符在指定位置或字符串结束 return pos; // 返回该字符的索引 } return strchr(str + pos, target_char); // 如果不是,则继续在剩余部分寻找 } ``` 这里的`strlen(str)`获取母串的长度。 **2. 图二:从母串中第pos个位置获得长度为len的字串(substring提取)** 如果你想提取从`pos`开始、长度为`len`的子串,可以使用`memcpy()`函数结合指针操作,如下所示: ```c void get_substring(char* dest, const char* src, size_t start, size_t len) { if (start + len > strlen(src)) { // 防止越界,如果实际需要的子串超出了源串长度,只取到实际长度 len = strlen(src) - start; } memcpy(dest, src + start, len); // 复制子串到目的地 dest[len] = '\0'; // 添加终止符'\0' } ``` 注意,在实际应用中,确保`dest`有足够的空间存储子串,并记得添加终止符`\0`表示字符串的结束。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值