如果str是空指针就报错assert(str);//记录字符串的长度size_t count=0;//一个循环,直到字符串为'\0'时结束循环并停止计数while(*str){str++;count++;}returncount;}intmain(){char str[]={"abcdef"};int ret1=my_strlen1(str);printf("%d\n",ret1);return0;}...
C语言字符串去掉指定字符 一、去掉字符串指定字符 copy 1#include <stdio.h>2#include <string.h>34voiddel_char(chara[],charc)5{6inti,j;7for(i=0,j=0; *(a+i)!='\0'; i++)8{9if(*(a+i)==c)10continue;11else12{13*(a+j)=*(a+i);14j++;15}16}17*(a+j)='\0';18}19int...
//从键盘输入若干字符串,写入文件myfile4中,用-1作字符输入结束的标志,然后将文件的内容显示在屏幕上,文件的读写分别由函数ReadText和WriteText实现。 1#include <stdio.h>2#include <string.h>3#include <stdlib.h>4voidWriteText(FILE *);5voidReadText(FILE *);6voidmain()7{ FILE *fp;8if((fp=fo...
按照上述步骤,可以得到字符串 "abcdeabc" 的 next 数组为:[-1, 0, 0, 0, 0, 1, 2, 3]。其中,next[0] 为边界条件,不参与匹配,next[1] 为单个字符,它的前缀和后缀为空,next[2] 为前两个字符,因为它们不相等,所以没有公共前缀和后缀,next[3] 也为 0,因为前三个字符中没有...
j 是 s2 的位置 while (j < len2 - len1 + 1) { while (i < len1 && s1[i] == s2[j]) { ++i; ++j; } if (i == len1) { return j - len1; } else { j = j - i + 1; // 到上次开始判断字符的下一个字符 i =...
h> int main() { char arr1[] = {'a', 'b', 'c'};//arr1数组中存放3个字符 char arr2[] = "abc"; //arr2数组中存放字符串 printf("%s\n", arr1); printf("%s\n", arr2); return 0; } 这样的代码,我调试的时候,观察⼀下 arr1 和arr2 的内容: 运行结果: 此时,我们可以看到...
{inti,j ;for(i=0;str1[i]!='\0';i++);for(j=0;str2[j]!='\0';j++) str1[i+j]=str2[j]; }intmain() {charstr1[1000],str2[1000]; printf("请输入字符串1:"); gets(str1); printf("请输入字符串2:"); gets(str2); ...
字符串常量与指针关系密切,因为字符串常量的值,实际上表示的是存储这些字符的内存空间的地址,更准确地说是字符串常量中第 1 个字符的地址,而不是这些字符本身。因此,在 C 语言中是不能直接进行字符串赋值的(因为没有字符串类型嘛)。在 C 语言中,常通过声明一个指向 char 类型的指针并将其初始化为一个字符串...
#include <stdio.h> include <string.h> void reverse(char *x){ char c;int a=0,b=strlen(x)-1;for(;a
int main(){ int i,index,count;char a,ch,str[80];scanf("%c\n",&a);i=0;index=-1;count=0;ch=getchar();for(i=0;ch!='\n';i++){ str=ch;count++;ch=getchar();} for(i=0;i<count;i++)if(a==str)index=i;if(index!=-1)printf("index=%d",index);else printf...