69,371
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <string.h>
void main()
{
char s[40],v[20],min;
int i,j;
char *p;
scanf("%s%s",s,v);
min = s[0];
for (i=0; s[i]!='\0'; i++)
{
if (s[i] < min)
p = &s[i];
}
j = strlen(v);
for (i=0; v[i]!='\0'||*(p+i+1)!='\0'; i++)
{
if (*(p+i) != '\0')
{
*(p+i+j+1) = *(p+i+1);
j++;
}
if (v[i] !='\0')
*(p+i+1) = v[i];
}
*(p+i+j+1) = '\0';
printf("%s\n",s);
}
for (i=0; s[i]!='\0'; i++)
{
if (s[i] < min)
p = &s[i];
}//不知道这个地方是干啥的 总之错误在于对p的初始化赋值上面
#include <stdio.h>
#include <string.h>
void main()
{
char s[40],v[20],min;
int i,j,k,m;
char *p;
scanf("%s%s",s,v);
min = s[0];
p = s;
for (i=0; s[i]!='\0'; i++)
{
if (s[i] < min)
{
p = &s[i];
m = i;
}
else
{
m = 0; //-----------------> m记下最小字符所在位置。
}
}
j = strlen(v);
k = strlen(s);
//for (i=0; *(p+i+1)!='\0'; i++)
// *(p+i+j+1) = *(p+i+1);
for(i=k-1; i>m; i--)
{
*(p+j+i)=*(p+i);
}
*(p+k+j+1) = '\0';
for (i=0; v[i]!='\0';i++)
*(p+i+1) = v[i];
for (i=0; s[i] != '\0'; i++)
printf("%c",s[i]);
printf("\n");
}
#include <stdio.h>
#include <string.h>
void main()
{
char s[40],v[20],min;
int i,j;
char *p;
gets(s);
gets(v);
min = s[0];
p = s;
for (i=1; s[i]!='\0'; i++)
{
if (s[i] < min)
{
p = &s[i];
min = s[i];
}
}
j = strlen(v);
for (i=0; *(p+i+1)!='\0'; i++)
*(p+i+j+1) = *(p+i+1);
*(p+i+j+1) = '\0';
for (i=0; v[i]!='\0';i++)
*(p+i+1) = v[i];
for (i=0; s[i] != '\0'; i++)
printf("%c",s[i]);
printf("\n");
return 0;
}
j = strlen(v);
for (i=0; *(p+i+1)!='\0'; i++) //当s的字符串长度比v字符串长时,*(p+i+1)就永不等于'\0'.然后死循环,跃界.
{
*(p+i+j+1) = *(p+i+1);
}
*(p+i+j+1) = '\0';
#include <stdio.h>
#include <string.h>
void main()
{
char s[40],v[20],min;
int i,j,k,m;
char *p;
scanf("%s%s",s,v);
min = s[0];
p = s;
for (i=0; s[i]!='\0'; i++)
{
if (s[i] < min)
{
p = &s[i];
m = i;
}
else
{
m = 0; //-----------------> m记下最小字符所在位置。
}
}
j = strlen(v);
k = strlen(s);
//for (i=0; *(p+i+1)!='\0'; i++)
// *(p+i+j+1) = *(p+i+1);
for(i=k-1; i>m; i--)
{
*(p+j+i)=*(p+i);
}
*(p+k+j+1) = '\0';
for (i=0; v[i]!='\0';i++)
*(p+i+1) = v[i];
for (i=0; s[i] != '\0'; i++)
printf("%c",s[i]);
printf("\n");
}
#include <stdio.h>
#include <string.h>
void main()
{
char s[40],v[20],min;
int i,j;
char *p;
scanf("%s%s",s,v);
min = s[0];
p = s;
for (i=1; s[i]!='\0'; i++)
{
if (s[i] < min)
{
p = &s[i];
min = s[i];
}
}
j = strlen(v);
for (i=0; *(p+i+1)!='\0'; i++)
*(p+i+j+1) = *(p+i+1);
*(p+i+j+1) = '\0';
for (i=0; v[i]!='\0';i++)
*(p+i+1) = v[i];
for (i=0; s[i] != '\0'; i++)
printf("%c",s[i]);
printf("\n");
}
#include <stdio.h>
void main()
{
char s[40]={0},v[20]={0};
int i;
char *p,*q=v;
scanf("%s%s",s,v);
p=&s[0];//初始化
//找出s串中最小的字符,赋此字符的指针给p
for (i=0; s[i]!='\0'; i++)
{
if (s[i] < *p) //注意*p与min的区别
p = &s[i];
}
p++;
//将另一个字符串v放在一个字符串s中最小的字母的后面
for(;*q!=0;)
*p++=*q++;
*p=0;
printf("%s\n",s);
}