C语言数组知识点

C语言数组知识点
摘要由CSDN通过智能技术生成

* 字符串处理函数需要引用<string.h>
* strcpy():字符串拷贝(复制)
* strlen:求字符串的长度
* strcat:字符串连结.;例如("abc","xyz")->"abcxyz"
* strcmp:字符串比较
* strstr:字符串查找.例如("ababcabcdabcde","abcd")->

* 字符处理函数,需要引用 ctype.h
* isdigit:判断是否为数字字符
* isxdigit:判断是否为十六进制数字字符
* isalpha:判断是否为字母字符
* islower:判断是否为小写字母
* isupper:判断是否为大写字母
* tolower:转小写字母
* toupper:转大写

*/

//字符串函数的使用
int main()
{
    char str1[] = "abc";
    char str2[] = "xyz";
    char str3[10];
    //把str1复制到str3,相当与str3 = str1;
    //strcpy(str3,str1);
    //把str2复制到str1中
    //strcpy(str1,str2);
    //printf("%s\n",str1);

    //把str2的内容添加到str1的后面,相当于str1+=str2
    //strcat(str1,str2);
    //printf("%s\n", str1);

    //把str1+str2(连结) 存放到str3中
    //strcpy(str3,str1);
    //strcat(str3,str2);
    //printf("%s\n",str3);//"abcxyz"

    //比较str1和str2的大小
    /*int n = strcmp(str1,str2);
    if (n < 0)
        printf("%s<%s\n", str1, str2);
    else if (n == 0)
        printf("%s==%s\n", str1, str2);
    else
        printf("%s>%s\n",str1,str2);*/

    const char *p = strstr("ababcabcdabcde","abcd");
    printf("%s\n",p);

    return 0;
}

//1.字符串连接,例如给定两个字符串 "abc"和"xyz"
//最后把两个字符串连接在一起,输出"abcxyz".
//int main()
//{
//    char str1[10] = "abc";
//    char str2[] = "xyz";
//    //找到str1的末尾
//    int i;
//    for (i = 0; str1[i] != '\0'; i++) //sizeof(str1)不可以,strlen(str1)可以
//        ;//空语句
//    //把str2复制到str1末尾
//    for (int j = 0; str2[j] != '\0'; j++)
//    {
//        str1[i] = str2[j];
//        i++;
//    }
//    str1[i] = '\0';
//    printf("%s\n",str1);
//
//    return 0;
//}

//2.字符串比较,比较两个字符串的大小,字符串的大小按照字典序定义
//例如"abc"<"x" ;"abc"=="abc";"abc">"abb".
//int main()
//{
//    char str1[100];
//    char str2[100];
//    scanf("%s %s",&str1,&str2);
//    int i;
//    for (i = 0; str1[i] != '\0' && str2[i] != '\0'; i++)
//    {
//        if (str1[i] > str2[i])
//        {
//            printf("%s > %s\n",str1,str2);
//            return 0;
//        }
//        else if (str1[i] < str2[i])
//        {
//            printf("%s < %s\n",str1,str2);
//            return 0;
//        }
//    }
//    if (str1[i] > str2[i])
//        printf("%s > %s\n", str1, str2);
//    else if(str1[i] < str2[i])
//        printf("%s < %s\n", str1, str2);
//    else
//        printf("%s == %s\n", str1, str2);
//
//    return 0;
//}

//3.字符串转数字,把字符串转成对应的数字,转换过程中如果遇到非数字
//字符则转换结束.例如"1234"转换为1234;"a1234"转换为0,
//"12a34"转换为12.
//一位数字字符转数字=ch-'0',例如'8'-'0'==8  ,注意  '12'-'0' 错误的
//一位数字转数字字符=n+'0'   例如 8+'0'=='8',注意 12+'0'=="12"错误的
//int main()
//{
//    char str[100];
//    scanf("%s",&str);
//    int tmp = 0;//保存得到的数字
//    for (int i = 0; isdigit(str[i]); i++)//"1234"
//    {
//        tmp = tmp*10 + (str[i] - '0');//'1'-'0'==1,'2'-'0'==2,...,'9'-'0'=9
//    }
//    printf("%d\n",tmp);
//
//    return 0;
//}

4.数字转字符串,把数字转成对应的字符串,例如1234转换为"1234".
//int main()
//{
//    char str[100];
//    int i = 0;//str1下标
//    int n;
//    scanf("%d",&n);
//    //1234->"4321"
//    while (n != 0)
//    {
//        str[i] = n % 10+'0';
//        n /= 10;
//        i++;
//    }
//    str[i] = '\0';
//    //"4321"->"1234"
//    int j;
//    char tmp;
//    for (j = 0, --i; j < i; j++, i--)
//    {
//        tmp = str[j];
//        str[j] = str[i];
//        str[i] = tmp;
//    }
//    printf("str=%s\n", str);
//    return 0;
//}

//5.实现字符串反转.例如"abc"->"cba";"abcd"->"dcba"
//int main()
//{
//    char str[100];
//    scanf("%s",&str);//"abc"->3
//    int len = strlen(str);//求字符串的长度
//    char tmp;
//    for (int i = 0, j = len-1; i < j; i++, j--)
//    {
//        tmp = str[i];
//        str[i] = str[j];
//        str[j] = tmp;
//    }
//    printf("%s\n",str);
//
//    return 0;
//}

1. str1 复制 10 , 存放到 str3 , 并输出
int main ()
{
char str1 [ 10 ] = "abc" ;
char str2 [ 10 ] = "WXYYZabc" ;
char str3 [ 100 ];
//char str3[100] = "";// 方法 1
str3 [ 0 ] = '\0' ; // 方法 2
//strcpy(str3,str1);// 方法 3
for ( int i = 0 ; i < 10 ; i ++ ) //strcat 使用的前提是 str3 必须是字符串
{
strcat ( str3 , str1 );
}
printf ( "%s\n" , str3 );
return 0 ;
}
str1 str2 的大小 , 并输出. ( 字符串不能使用 >,<,= 来进行比较 )
int main ()
{
char str1 [ 10 ] = "abc" ;
char str2 [ 10 ] = "WXYYZabc" ;
int n = strcmp ( str1 , str2 );
if ( n > 0 )
printf ( "%s > %s\n" , str1 , str2 );
else if ( n < 0 )
printf ( "%s < %s\n" , str1 , str2 );
else
printf ( "%s == %s\n" , str1 , str2 );
return 0 ;}
3. 求出 str1 str2 的长度和占用的字节数 .
//sizeof: 内容占用的字节数
//strlen: 求字符串的长度 ( 字符数量不包含 '\0')
int main ()
{
char str1 [ 10 ] = "abc" ;
char str2 [ 10 ] = "WXYYZabc" ;
printf ( "%d,%d\n" , sizeof ( str1 ), strlen ( str1 )); //10*1, 3
printf ( "%d,%d\n" , sizeof ( str2 ), strlen ( str2 )); //10*1,8
printf ( "%d\n" , sizeof ( 1 )); //4, strlen(1);//error
printf ( "%d\n" , sizeof ( char )); //1, strlen(char);//error
printf ( "%d\n" , sizeof ( double )); //8,strlen(double);//error
return 0 ;
}
4. 把从 str2 "YZ" 开始的字符 ( 包括 "YZ") 全部连结到 str1 的后面 , 并把连结的结果复制到 str3 . 如上面的数
据则结果为 "abcYZabc".
int main ()
{
char str1 [ 10 ] = "abc" ;
char str2 [ 10 ] = "WXYYZabc" ;
char str3 [ 100 ];
strcpy ( str3 , str1 );
const char * p = strstr ( str2 , &#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值