字符串基础知识--笔记

来源:互联网 发布:犀牛for mac 破解补丁 编辑:程序博客网 时间:2024/05/03 14:52
//字符串
cout<<""He said:\"I ama stu\\dent.\";//如果字符常量中包含双引号,则双引号应写为'\"',字符串出现时,需连写两次,变成'\\'

a[3]=0;//等效于a[3]='\0';


while(gets(ss))//输入操作


char line[100];
scanf("%s",line)//注意,不是用&line;


char line [5];
scanf("%s",line);//如输入12345,越界,cin与其相同


cin.getline (char a[],int asize);//输入一行(行长不超过asize-1) 自动添加'\0'回车换车不会写入a,但是会从输入流中去掉
char.line[10];
cin.getline(line,sizeof(line));//或cin.getline (line,10);读入最多9个字符到line
//读入一行到数组
gets(char buf[]);//读入一行,自动'\0'回车换行符不会写入buf,但是会从输入流中去掉,可能导致数组越界!
chars[10];
while(gets(s)){
printf("%s\n",s);
}
//字符串函数
strcat(s1,s2);
strcpy(char[]dest,char[]src);//拷贝src到dest,
int strcmp(char[]dest,char[]src);//还有strcmp(s1,s2)
int strlen(char[]s);
strupr(char[]);
strlwr(char[]);


//strlen糟糕用法
char s[100]="test",int i;
for(i=0;i<strlen(s);++i){s[i]=s[i]+1;}//strlen(i)执行是需要时间的
//int len=strlen(s);

for(int i=00;i<len;++i){s[i]=s[i]+1;}//把s[i]存放成定值

//例题/*如果s2不是s1的字串,返回-1;如果s2是s1的子串,返回其在s1中第一次出现的位置;空串是任何的子串,且出现位置为0*/

#include <stdio.h>
int strstr(char s1[],char s2[]){
     if(s2[0]==0)
        return 0;
        for(int i=0;s1[i];++i){ //保证主串的从第k个位置与子串各位置比较
            int k=i,j=0;
            for(;s2[j];++j,++k){
                if(s1[k]!=s2[j])
                    break;
            }
            if(s2[j]==0)
                return i;
        }
            return-1;
              }
main(){
    int t;
    char a1[100],a2[100];
    scanf("%s",a1);
    scanf("%s",a2);
    t=strstr(a1,a2);
    printf("%d",t);
}





原创粉丝点击