首页 > 试题广场 >

请编写一C语言程序,该程序的功能是确定字符串中首次出现的某字

[问答题]

请编写一C语言程序,该程序的功能是确定字符串中首次出现的某字符在串中的位置(即该字符是字符串中的第几个字符),然后从字符串中删除该字符。要求:

(1) 如果未找到该字符,程序给出相应信息,否则,输出该字符在字符串中首次出现的位置,删除该字符(注:不考虑非首次出现的该字符的删除),并且显示删除前后的字符串。

(2)通过键盘输入字符串以及被确定的字符。

#include <stdio.h>
#
include <string.h>
int func(char *s,int n,char ch)
{
    int j,k=0;
    s[n]=ch;
    s[n+1]='\0';
    while(s[k]!=ch)
         k++;
    if(k==n)
       return 0;
    else {
        for(j=k;j<n;j++)
        s[j]=s[j+1];
        s[j-1]='\0';
        return k+1;
    }
}

int main(){
    char s[80],ch;
    int l,p;
    gets(s);
    puts(s);
    scanf("%c",&ch);
    l=strlen(s);
    p=fun(s,l,ch);
    if(p==0)
    printf("error");
    else{
        puts(s);
        printf("%d",p);
    }    
}
发表于 2020-03-23 10:19:04 回复(0)
#include<stdio.h>
int main()
{  int i,j,k;  char a;  char st1[30],*p1;  p1=st1;  printf("input:");  scanf("%s %c",st1,&a);  printf("删除前字符串是:%s\n",p1);  k=strlen(p1);  for(i=0;i<k;i++)  {  if(p1[i] == a)  {  break;  }  }  for(j=i;j<k;j++)  {  p1[j]=p1[j+1];  if(j==(k-1))  {  printf("出现的位置是:%d\n",i);  printf("删除后字符串是:%s\n",p1);  }  }  if(i==k) printf("未找到该字符\n");  return 0;   }
编辑于 2019-05-28 21:33:04 回复(0)