c语言,输入一个字符串,再输入一个子串,求子串的个数。

作者&投稿:枕临 (若有异议请与网页底部的电邮联系)
求子串个数的公式~

如果长度是7,那子串个数据就是7+6+5+4+3+2+1,以此类推。
declare @baia int,@num int,@b varchar(200)
set @b='abcdefg'
set @a=0
set @num=0
while @a<len(@b)
begin
select @num=@num+len(@b)-@a
set @a=@a+1
end
select @num

扩展资料
取子串函数格式如下:
LEFT(,)
RIGHT(,)
SUBSTR(,[,])
功能:LEFT函数从字符型表达式左边的第一个字符开始截取子串,RIGHT函数从字符型表达式右边的第一个字符开始截取子串。
若数值型表达式的值大于0,且小于等于字符串的长度,则子串的长度与数值型表达式值相同。若数值型表达式的值大于字符串的长度,则给出整个字符串。若数值型的表达式小于或等于0,则给出一个空字符串。
参考资料来源:百度百科-字符函数

char str[128];
int n1,n2 ;
(1) 输入主串; scanf("%s", str );
(2) 输出主串; printf("%s
", str );
(3) 输入开始位置与子串长度; scanf("%d %d", &n1, &n2 );
(4) 输出取出的子串; printf( "%s
", substr(str,n1,n2) ;
(5) 退出系统;exit(0);
char *substr(char *s, int n1, int n2){static str[128];int i=0;for( i=0; i<n2; i++ )str[i]=*(s+n1+i) ;str[i]='\0' ;return str ;}

#include<stdio.h>
#include<string.h>
int main(){
    char str[100]={0};
    char s[100]={0};
    printf("请输入字符串:");
    scanf("%s",str);
    printf("请输入子串:");
    scanf("%s",s);
    int len=strlen(str);
    int flag=strlen(s);
    int i=0,num=0;
    char *p=str;//定义一个字符指针便于字符串步进
    for(i=0;i<len+1-flag;i++){//循环总次数是字符串总长度-子串长度+1.
        /*以子串的长度做标准,比较两个字符串的前flag个字符,相等返回0,所以取非*/
        if(!strncmp(p,s,flag))
            num++;
        p++;//每次步进一个字符
    }
    printf("num=%d
",num);
    return 0;
}


#include<stdio.h>
#include<string.h>
main()
{
char str[100],substr[100];
int j,i,s=0;
gets(str);
gets(substr);
for(i=0;i<strlen(str);i++)
{
for(j=0;j<strlen(substr);j++)
{
if(str[i+j]!=substr[j])
break;
}
if(substr[j]==0)
s++;
}
printf("%d",s);
}

您好,很高兴为您解答,流星不死为您答疑解惑

如果本题还有不懂的地方请追问,望采纳我的回答。

祝楼主学习进步。

上面的代码可以直接复制到编译器里,带换行。



上面的给力


C语言:怎样输入一个字母,输出下一个字母
C语言:怎样输入一个字母,输出下一个字母,可以参考下面的代码:include<stdio.h> int main(){ char a,a1;scanf("%c",&a);a1=a+1;printf("%c",a1);}

C语言怎样输入字母?
在 C 语言中,可以使用字符数组来输入字母。以下是一个简单的程序示例,用于提示用户输入“you”,并验证输入是否正确:```c include <stdio.h> include <string.h> int main() { char input[4]; \/\/ 定义一个长度为 4 的字符数组 printf("请输入“you”:");scanf("%s", input); \/\/ ...

用C语言编写一个程序,输入一个字符串,统计其中各个字符出现的次数
源程序代码如下:include "pch.h"define _CRT_SECURE_NO_WARNINGS\/\/VS环境下需要,VC不需要 include<stdio.h> int main(){ char c = 0;\/\/定义输入字符变量 int num_count = 0;\/\/数字个数 int bigalp_count = 0;\/\/大写字母个数 int littlealp_count = 0;\/\/小写字母个数 int emp_count...

C语言,在键盘上输入一个字符,若该字符为英文字母,则输出“字母”,若为...
把getchar(i);换成i=getchar();include<stdio.h> int main(){ char i;printf("input a character\\n");i=getchar(); \/\/这里是这样的 if((i>='a'&&i<='z')||(i>='A'&&i<='Z'))printf("字母");if(i>='0'&&i<='9')printf("shuzi");return 0;} ...

输入一个字符串,统计出其中空格的个数 C语言
思路:统计字符串中的空格,所以该字符串中有空格,则输入只能使用gets函数,再依次遍历该字符串,判断字符是否是空格,如果是,则空格个数自加1。参考代码:include<string.h>#include<stdio.h>#include<math.h>int main(){int sum=0,i;char a[100];gets(a);for(i=0;a[i]!='\\0';i++)...

c语言从键盘输入一字符串
include <stdio.h> int main(){ char str[100];long long an[100];int cnt=0,i=0,f=0;printf("Please input a string:");gets(str);while(str[i]){ if(str[i]>='0'&&str[i]<='9'){ if(f==1){ an[cnt]=an[cnt]*10+str[i]-'0';} if(f==0){ cnt++;f=1;an[...

入门c语言:从键盘输入一个字符,判断它是字母、数字或其它字符。
主要部分如下:char c;cin>>c;if(c>='0'||c<='9')cout<<"digital character";if(c>='a"||c<='z')cout<<"alphabetic character";else cout<<"other character";大致就这样吧

在C语言中单个字符输入\/输出函数是什么意思
putchar 函数是字符输出函数, 其功能是在显示器上输出单个字符。其一般形式是putchar(字符变量),对控制字符则执行控制功能,不在屏幕上显示。fprintf()、fscanf()、fgets()和fputs()举例 fprintf(fp,"%s",words);fscanf(fp,"%s",words);fgets(buf,MAX,fp);\/\/buf 是一个char数组的名称,MAX是...

C语言:从键盘输入一个不超过100个字符的字符串,其中字符串只包括字母...
1、首先需要打开编程软件。2、输入以下程序:#include <stdio.h>int main(){ char str[40]; scanf("%s",&str); printf("%s",str); return 0;}。3、然后按F5运行程序。4、然后输入想要输入的字符串。5、按回车键,就会弹出你输入的字符串。6、注意字符串的大小,改变中括号中的数字改变输入...

c语言程序设计答案 编程实现,从键盘输入一个字符,则输出其后的字符,如...
程序源码如下:define _CRT_SECURE_NO_WARNINGS\/\/VS环境下需要,VC不需要 include<stdio.h> void main(){ char a;\/\/定义一个字符 printf("请输入一个字符:");\/\/文字提示 scanf("%c", &a);\/\/输入一个字符 printf("其后续字符为:");\/\/文字提示 printf("%c\\n", a + 1);\/\/输出其...

安达市13581174374: C语言编程问题:输入一个字符串,再输入一个字符ab,将字符串中所有的ab字符删除后输出该字符串. -
点董厚朴: 大致思考方法:定义三个字符串:str[], ab[], output[],str是输入的第一个字符串,output放的是最后的结果.设置两个下标 i,j.i指向第一个字符串,j指向第二个子符串;i每次向后移动一个位置,i往后的strlen(ab)个字符是不是和字符串ab匹配,如...

安达市13581174374: 用c语言编写程序,输入任意一串字符,再输入一个字符和一个位置,将此字符插入到此串字符的这个位置上. -
点董厚朴: #include <stdio.h>#include <string.h>#include <stdlib.h> int main(void) { int l, len; char ch, a[100]; printf("请输入原始字符串:\n"); gets(a); printf("输入字符:\n"); scanf("%c", &ch); char temp; while((temp=getchar()) != '\n' && temp != ...

安达市13581174374: C语言程序题,在主函数中输入一个字符串,再输入一个字符,编写函数delechar(),将字符串中该字符删除 -
点董厚朴: #include #define max 80 void delechar(char str[],char a) { int i=0,j; while(str[i]!='\0') { if(str[i]==a) { for(j=i;str[j]!=0;j++) { str[j]=str[j+1]; } } i++; } } int main(void) { int i; char a,str[max]; gets(str); scanf("%c",&a); delechar(str,a); puts(str); return 0; }

安达市13581174374: 求教C语言大神! gets()输入一个字符串后,我想接着输入一个字符,这时需要额外加getchar来接受回车符吗 -
点董厚朴: 直接看代码:#include<stdio.h>#include<string.h> void main() { char str[100],str_new[100],t; char *p=str; int at=0; puts("输入字符串:"); gets(str); puts("要插入的字符:"); t=getchar();/*.输入的字符被存放在键盘缓冲区中.直到按回...

安达市13581174374: c语言 输入一个字符串,一个个读入字符,再输出. -
点董厚朴: for ( i=0;string[i]!='\0';i++); // 分号去掉 '\0' 不好判断.scanf 读不进 '\n' ,遇到 '\n' 要你再输入东西. 改用 getchar() 较好.#include <stdio.h> #include<stdlib.h> main(){ char s[100]; int i; printf("enter a string:"); i=0; while(1){ s[i]=getchar(); ...

安达市13581174374: c语言输入一个字符串放在数组中,再输入一个字符,用这个字符替换字符串的最后一个字符. -
点董厚朴: #include "stdio.h" main() { int i; char a[80],x; printf("请输度入一专个字符属串:"); gets(a); printf("请输入一个字符:"); scanf("%c",&x); for(i=0;a[i]!=0;i++); a[i-1]=x; puts(a); }

安达市13581174374: 用c语言如何编写输入一个汉字后继续输出另一个汉字? -
点董厚朴: 用自符串: 先定义一个字符串,如:char hanzi[20]. 然后: scanf("%s",hanzi); 或者gets(hanzi). 不过定义的时候控制了字节为20,不能输太多,(一个汉字两 个字节).1、引入标准输入输出库:sdtio.h. 2、定义字符串形式的汉字(采用字符数组存储). 3、使用printf函数,或者puts函数输出字符串形式的汉字.

安达市13581174374: C语言,输入一个以回车结束的字符串,再输入一个字符,统计并输出该字符在字符串中出现的次数. -
点董厚朴: 你输入字符串的语句最好改成scanf%s或者gets一次性接受整个字符串.

安达市13581174374: C语言设计一个函数,输入一字符串,逐个重复输出,例如输入abc,输出aa -
点董厚朴: #include <stdio.h> int main(void) { char temp = 0; printf("请输入字符串:"); while((temp = getchar()) != '\n') for(int i = 0; i < 2; ++i) printf("%c",temp); printf("\n"); return 0; }

安达市13581174374: 【C语言】已有一个程序:输入字符串后再输一字符,令字符串中该字符删去,我有几处不明白. -
点董厚朴: 你那个j++放第三个表达式也是一样的,都能实现j的递增.至于你说的str[j]='\0':首先'\0'是字符串结束的标志;其次i,j是同步递增的,j++是先用j的值然后自增,循环结束后当然是指向字符串末尾了,这时给它赋值'\0'作为字符串结束标记.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网