求字符串的长度//1.找到a的尾部while(a[i]) i++;

本文介绍了一个使用C语言实现的简单程序,该程序通过scanf函数读取用户输入的字符串,并计算并显示字符串的长度。文章详细展示了如何利用C语言的基本输入输出功能和字符串处理技巧。

#include <stdio.h>

int main(int argc, const char *argv[])
{
    char a[100] = {0};
    
    int i = 0;

    printf("please input (char [50]) > ");
    scanf("%[^\n]",a);//读取除了\n之外所有的内容,遇到\n(回车)结束
    
    //1.找到a的尾部
    while(a[i]) i++;
    //hello'\0'
    
    printf("len = %d\n",i);

    return 0;
}

 

#include<bits/stdc++.h> using namespace std; int a[10110],b[10110],c[10110]; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); bool flag=false; //假设初始 a-b>0 被减数>减数 string s1,s2; //字符串去存储 int lena,lenb,lenc; //数组a b c 的长度 cin>>s1>>s2; lena = s1.length(); lenb = s2.length(); for(int i=1;i<=lena;i++) { //字符串的下标位置从0->s.length()-1 //比如 1234 ,减法运算的时候从最低位开始运算 4->3->2->1 a[i] = s1[lena-i] - '0'; //字符串倒序存储 } for(int i=1;i<=lenb;i++) { //字符串的下标位置从0->s.length()-1 //比如 1234 ,减法运算的时候从最低位开始运算 4->3->2->1 b[i] = s2[lenb-i] - '0'; //字符串倒序存储 } //被减数<减数的情况: a的长度<b的长度 / a的长度的=b的长度并且a最高位的数字<b最高位的数字 if((lena<lenb) || ((lena==lenb)&&(s1<s2))) { flag=true; swap(a,b); //交换被减数与减数的位置,使得b变为被减数、a变为减数 //然后结果>0,只是输出前在前面先加个负号 //vevA.swap(vec.B); } lenc = max(lena,lenb); //取位数最长的那个 for(int i=1;i<=lenc;i++) { if(a[i]<b[i]) { //如果被减数不够减,则需向高位借位 a[i+1]--; //110 a[i]+=10; } c[i] = a[i]-b[i]; //将运算结果存储到c数组 } while(c[lenc]==0 && lenc>1) lenc--; //尾部一连串的0删除不输出 if(flag) cout<<'-'; // 如果是负数。则先加个负号 for(int i=lenc;i>=1;i--) //从最高位不是0的开始输出 { cout<<c[i]; } return 0; } 这段代码中这样使用swap函数有问题吗
最新发布
03-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值