c note

go 程序员写c的痛苦...

1, char   *argv[]

 
char *argv 代表argv是一个字符串
 
而 char   *argv[]则代表argv是一个字符串数组
2, 字符串数组

argv : 字符和字符串的区别.  赋值字符 argv[i][j]  , 赋值字符串 : argv[i] . 这是因为字符串是特殊的字符数组,首地址既是字符串地址.

   字符串和字符的赋值方式不同,其操作和判断方法也随之变化.

  字符的操作可以使用字符处理函数,字符串处理可以使用字符串处理函数.

#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]) {

  char c='c';
  char *s="abcde";
  printf("%s",s);
  char *ss[]={"aa","bb","dd"};
  printf("===>%s\n",*(ss+1));


}

 

3....label 执行顺序
/*
label真的是一个挨着一个运行的,只有goto可打断这个执行顺序
每个label至少要有一条语句,哪怕是空语句.
https://blog.csdn.net/jiankangshiye/article/details/8747283
*/
#include <stdio.h>
void main()
{
    int a=0;
    int b;
    //printf("hello");
lable_000:
    //printf("label_000\n"); 
    ;
lable_001:
    printf("hello, lable_001\n");
lable_002:
    a++;
lable_003:
    if(a<5)
        goto lable_000;
    printf("hello,end");
lable_004:
    printf("label真的是一个挨着一个运行的,只有goto可打断这个执行顺序.\n");
    printf("每个label至少要有一条语句,哪怕是空语句.\n");
}

 4. split with c style

#include <string.h>
#include <stdio.h>
 
int main () {
   char str[80] = "11,22,445,ss,,,ff,,";
   const char s[2] = ",";
   char *token;
   int[32]  =[];
   
   /* 获取第一个子字符串 */
   token = strtok(str, s);
   
   /* 继续获取其他的子字符串 */
   while( token != NULL ) {
      printf( "%s\n", token );
    
      token = strtok(NULL, s);
   }
   
   return(0);
}

 

posted @ 2022-07-12 18:03  voh99800  阅读(78)  评论(0编辑  收藏  举报