问题:
输入一个字符串,用指针求出字符串的长度。
答案:
#include <stdio.h>
int main()
{
  char str[20],  *p;
  int length=0;
  printf(“Please input a string: ”);
  gets(str);
  p=str;
  while(*p++)
  {
length++;
}
printf(“The length of string is %d\n”, length);
return 0;
}
问题:使用C语言实现字符串中子字符串的替换
描述:编写一个字符串替换函数,如函数名为 StrReplace(char* strSrc, char* strFind, char* strReplace),strSrc为原字符串,strFind是待替换的字符串,strReplace为替换字符串。
举个直观的例子吧,如:“ABCDEFGHIJKLMNOPQRSTUVWXYZ”这个字符串,把其中的“R
ST”替换为“ggg”这个字符串,结果就变成了:
ABCDEFGHIJKLMNOPQgggUVWXYZ
答案一:
#include <stdio.h>
#include <string.h>
void StrReplace(char* strSrc, char* strFind, char* strReplace);
#define M 100;
void main()
{char s[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char s1[]="RST";
char s2[]="ggg";
字符串函数putsStrReplace(s,s1,s2);
printf("%s\n",s);
}
void StrReplace(char* strSrc, char* strFind, char* strReplace)
{
        int i=0;
        int j;
        int n=strlen(strSrc);
        int k=strlen(strFind);
        for(i=0;i<n;i++)
        {
                if(*(strSrc+i)==*strFind)
                {
                        for(j=0;j<k;j++)
                        {
                                if(*(strSrc+i+j)==*(strFind+j))
                                {
                                        *(strSrc+i+j)=*(strReplace+j);
                                }
                                else continue;
                        }
                }
        }
}
答案二:
#include <stdio.h>
#define MAX 100
StrReplace(char *s, char *s1, char *s2) {
    char *p;
    for(; *s; s++) {
        for(p = s1; *p && *p != *s; p++);
        if(*p) *s = *(p - s1 + s2);
    }
}
int main()
{
    char s[MAX];            //s是原字符串
    char s1[MAX], s2[MAX];  //s1是要替换的
                            //s2是替换字符串

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。