在几周内参加深入的 Objective-C 类(class)之前,这里的初学者试图围绕一些基本的 C 知识,所以如果这是行人,我深表歉意。
任务是创建一个接受三个参数的函数:一个源字符串、一个从该字符串开始删除的整数,以及另一个告诉函数要删除多少字符的整数。书中给出的示例是起始字符串“the wrong son”,然后是 4 和 6,只剩下“the son”。
我的想法是根据第一个单词和第二个单词创建两个单独的字符串,然后将它们连接在一起。到目前为止,我只能提取“the”,而我的第二个 for 循环显然什么也不做。这是我目前所拥有的:
#include<stdio.h>
int main (void)
{
char text[]="the wrong son";
void removeString (char[], int, int);
int s, l;
printf("Enter starting point for removal: ");
scanf("%d",&s);
printf("\nEnter lenght of removal: ");
scanf("%d",&l);
removeString(text, s, l);
printf("\nString after removal = %s",text);
return 0;
}
void removeString (char s1[], int s, int l)
{
printf("s1 = %s, s=%d, l=%d\n", s1, s, l);
char s2[]="";
char s3[]="";
int i,j;
for (; i<s; ++i)
{
s2[i]=s1[i];
}
printf("\n");
for (; j>l; ++j)
{
s3[j]=s1[j];
}
printf("s2 = %s, s3 = %s", s2, s3);
}
我很困惑。任何帮助将不胜感激。
最佳答案
恕我直言,为此目的创建单独的数组并不是最好的方法。相反,一个更好的更清洁的方法将是
- 接收数组,开始索引并跳过索引值。
- 使用
strlen()
计算数组的长度。 - 将(开始索引+跳过索引)位置的值放到开始索引位置。
- 将起始索引增加 1。
- 继续第 3 步和第 4 步,直到数组长度用完,即最新的(起始索引+跳过索引)指向数组中的最后一个元素。
关于C函数删除字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29783152/