0
我试图采取在字符数组如果字符串"This is a message"
沿传递给函数是超大的,以便将它分隔符基于变量maxSize
创建用C
例如可变大小的字符数组与4
一个maxSize
那么输出应该是"This, is ,a me,ssag,e"
char *placeDelimiter(char message[], int maxSize) {
int msgSize = strlen(message);
int delSize = (msgSize/maxSize);
int remSize = msgSize%maxSize;
int newSize = msgSize+delSize;
if (remSize==0) delSize--; //removes delimiter if on end of char array
char temp[newSize];
int delPos = 0;
for (int x=0;x<msgSize;x++) {
if ((x+1)%maxSize == 0) temp[x] = ',';
temp[x+delPos] = message[x];
delPos = (x+1)/maxSize;
}
return (char *)temp;
}
int main()
{
char msg[] = "This is a message";
char *p;
p = placeDelimiter(msg, 4);
printf("%s", p);
return 0;
}
我的问题是,我正在从输入"This is a message"
输出"This i,"
(从网上编译器)。任何人都可以向我解释我做错了什么,以及如何解决它?