两种方法:
复习时演算一遍,无非是将数组的位置替换成指针
//src:有空格的字符串 dst:没有空格的字符串
void str_no_space(char* src, char* dst) {
int j = 0;
int i = 0;
while (src[i] != 0) {
if (src[i]!=' ') {
dst[j] = src[i];
j++;
}
i++;
}
dst[j] = '\0';
}
int main(void) {
char str[] = "12 23 45 9687 5";
char dst[100] = {0};
str_no_space(str, dst);
printf("dst=%s\n",dst);
system("pause");
return EXIT_SUCCESS;
}
输出:
dst=12234596875
void str_no_space(char* src, char* dst) {
while (*src != 0) {
if (*src!=' ') {
*dst = *src;
dst++;
}
src++;
}
*dst = '\0';
}
int main(void) {
char str[] = "12 23 45 9687 5";
char dst[100] = { 0 };
str_no_space(str, dst);
printf("dst=%s\n", dst);
system("pause");
return EXIT_SUCCESS;
}
输出:
dst=12234596875
带参数的main函数:
无参main函数:int main(void)==int main()
带参数的main函数:int main(inr argc,char *argv[ ]) == int main(int argc,char **argv)
参数1:表示给main函数传递的参数的总个数。
参数2:是一个数组,数组的每一个元素都是字符串 char*
int main(int argc, char* argv[]) {
for (size_t i = 0; i < argc; i++) {
printf("%s\n",argv[i]);
}
system("pause");
return EXIT_SUCCESS;
}
利用gcc编译器将这个.c文件生成为.exe
例如:gcc hello.c -o hello.exe
并且在cmd中输入exe文件再打出字符,则字符会依次换行输出
例如:hello.exe 11 22 33 aa bb cc
也可以依照下面的方法直接在VS中操作出,输出字符依次为agrv[1],agrv[2],agrv[3].....
练习str中:
strstr函数:在str中,找到substr出现的位置
strstr(char *str,char *substr)
参数1:原串
参数2:子串
返回值:子串在原串中的位置(地址值);
如果没有NULL
char* ret = strstr("hellollollollollollo","llo");
printf("ret=%s\n",ret);
计算出现次数:
int str_times(char*str,char*substr){
int count = 0;
char* p = strstr(str, substr);
while (p != NULL) {
count++;
p += strlen(substr); //p=p+strlen(substr)---->"llollo"
p = strstr(p, substr); //返回:"llo"
}
return count;
}
int main(void) {
char str[] = "hellollollo";
char substr[] = "llo";
int ret = str_times(str, substr);
printf("出现%d次\c",ret);
system("pause");
return EXIT_SUCCESS;
}
.