问题:
输入一个字符串,用指针求出字符串的长度。
答案:
#include
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”这个字符串,把其中的“RST”替换为“ggg”这个字符串,结果就变成了:
ABCDEFGHIJKLMNOPQgggUVWXYZ
答案一:
#include
void StrReplace(char* strSrc, char* strFind, char* strReplace); #define M 100;
void main()
{char s[]=\char s1[]=\char s2[]=\
StrReplace(s,s1,s2); printf(\}
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 if(*(strSrc+i)==*strFind) { for(j=0;j if(*(strSrc+i+j)==*(strFind+j)) { *(strSrc+i+j)=*(strReplace+j); } else continue; } } } } 答案二: #include 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是替换字符串 puts(\ scanf(\ puts(\ scanf(\ puts(\ scanf(\ StrReplace(s, s1, s2); puts(\ printf(\ return 0; } 答案三: #include void StrReplace(char* strSrc, char* strFind, char* strReplace); int main() { char s[]=\ char s1[]=\ char s2[]=\ StrReplace(s,s1,s2); printf(\ return 0; } void StrReplace(char* strSrc, char* strFind, char* strReplace) { while(*strSrc != '\\0') { } } 问题: if(*strSrc == *strFind) { if(strncmp(strSrc,strFind,strlen(strFind)) == 0 ) { int i = strlen(strFind); int j = strlen(strReplace); printf(\ char *q = strSrc + i; printf(\ while((*strSrc++ = *strReplace++) != '\\0'); printf(\ printf(\ while((*strSrc++ = *q++) != '\\0'); } else { strSrc++; } } else { strSrc++; } 编写一个程序实现功能:将字符串”Computer Secience”赋给一个字符数组,然后从第一个字母开始间隔的输出该串,用指针完成。 答案: #include int main() { char str[]=”Computer Science”; int flag=1; char *p=str; while(*p) { if ( flag ) { printf(“%c”,*p); } flag = (flag + 1) % 2; p++; } printf(“\\n”); return 0; } 问题:使用C语言实现字符串中子字符串的替换 描述:编写一个字符串替换函数,如函数名为 StrReplace(char* strSrc, char* strFind, char* strReplace),strSrc为原字符串,strFind是待替换的字符串,strReplace为替换字符串。 举个直观的例子吧,如:“ABCDEFGHIJKLMNOPQRSTUVWXYZ”这个字符串,把其中的“RST”替换为“ggg”这个字符串,结果就变成了: ABCDEFGHIJKLMNOPQgggUVWXYZ 答案一: #include void StrReplace(char* strSrc, char* strFind, char* strReplace); #define M 100; void main() {char s[]=\char s1[]=\char s2[]=\ StrReplace(s,s1,s2); printf(\} 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