请问这个怎么转换成整数

输入一个以回车结束的字符串(少于10个字符),它由数字字符组成,将该字符串转换成整数后输出。注意,不能直接调用库函数atoi完成。
**输入提示信息:"Enter a string: "
**输出格式要求:"digit = %d\n"
程序运行示例如下:
Enter a string: 123
digit = 123


#include <stdio.h>
#include <string.h>
int main()
{
    char str[10];
    int i,res = 0;
    printf("Enter a string:");
    scanf("%s",str);
    for(i = 0;i < strlen(str);i++){
        res = res * 10 + (str[i] - '0');
    }
    printf("digit = %d\n",res);

    return 0;
}

img

#include <stdio.h>
#include <string.h>
int main()
{
    char t[10];
    int s[10];
    gets(t);
    int j,k;
    int len=strlen(t);
    for( j=0; j< len; j++)
    {
        s[j]=t[j]-48;
    }
    int sum=0;
    int wei=1;
    for( k=len-1; k>=0; k--)
    {
        sum+=wei*s[k];
        printf("digit = %d\n", sum);
        wei=wei*10;
    }
    int digit=sum;
    printf("digit = %d\n", digit);
    return 0;
}