在指定位置插入字符
/*在指定位置插入字符。*/
#include <stdio.h>
#include <string.h>
void insert(char s[] , char t, int i)
{
char string[100];
if(!strlen(s))
string[0] = t;
else
{
strncpy(string,s,i);
string[i] = t;
string[i+1]='\0';
strcat(string,t);
strcat(string,(s+i));
strcpy(s,string);
}
}
main()
{
char str1[100],c;
int position;
printf("Please input str1:\n");
gets(str1);
printf("Please input a char:\n");
scanf("%c",&c);
printf("please input position :\n");
scanf("%d",&position);
insert(str1,c,position);
puts(str1);
}
运行完本程序后报警两处。这主要是在vc下运行,所以没考虑用fputs和fgets。
D:\jh\jh.c(13) : warning C4047: 'function' : 'const char *' differs in levels of indirection from 'char '
D:\jh\jh.c(13) : warning C4024: 'strcat' : different types for formal and actual parameter 2
给瞧瞧 c
[解决办法]
strcat(string, t)有问题
[解决办法]
void insert(char s[] , char t, int i)
{
char *p = s;
while (*p++); // 结果p指向'\0'下一个字符
while (p > &s[i]) {
*p = *(p - 1);
--p;
}
*p = t;
}